私はこのDIとIoCの概念に慣れていないので、これを完全に間違っている可能性がありますが、後でモックできるように、コントローラーに一致するモデルをそのコントローラーコンストラクター(UserModel-> UsersController)に注入しようとしています。
したがって、私のモデルは次のようになります。
use Illuminate\Auth\UserInterface;
class User extends Eloquent implements UserInterface {
public function getAuthIdentifier()
{
return $this->getKey();
}
public function getAuthPassword()
{
return $this->password;
}
}
そして、私はそのようにUsersControllerに注入しようとしています:
class UsersController extends Controller {
protected $user;
public function __construct(User $user)
{
$this->user = $user;
}
public function index()
{
//dd( $this->user);
$users = $this->user->all();
foreach ( $users as $user )
print_r($user);
return;
}
}
次に、ブラウザでこのコントローラを押すと、「解決できない依存関係の解決」エラーが発生します。
これは、注入しようとしているクラスがeloquentのサブクラスである場合にのみ発生することに気付きました。eloquentを拡張しないカスタムクラスで同じコードを試してみると、正常に機能します。
私は何かが足りないのですか?