2017-10-05 5 views
0

Laravelは抽象クラスを自動挿入しますが、抽象クラスを持つ別のパラメータがある場合、Laravelはそれを無視してエラーになります。私はそれが好きで使用するときに細かい作業Laravel抽象クラス自動注入

public interface PostRepository { 
public function getPostById($id) 
} 
class EloquentPost implements PostRepository{ 

public function getPostById($id){ 

return Post::find($id); 
} } 

その:

class Controller PostController { 
private $post; 
public function __construct(PostRepository $post) 
    $this->post = $post; 
} 

しかし、私はその後、

class Controller PostController { 
private $post; 
public function __construct($someOtherParam, PostRepository $post) 
    $this->post = $post; 
} 

Laravelショーのエラーのようにそれを使用する場合。

答えて

0

Laravelは、そのパラメータのタイプヒントがないので、コントローラのコンストラクタに最初のパラメータとして何を注入するべきかを判断することができません。

URLに入るべきものが$someOtherParamの場合、コンストラクタではなく、指定されたルートポイントがコントローラのアクションメソッドに注入されるようになります。