Цель не является реальной. Laravel 5 – поставщик услуг привязки к приложениям

Я получаю эту ошибку:

BindingResolutionException in compiled.php line 1029: Target [App\Models\Contracts\Repositories\IUserRepository] is not instantiable. 

Мой код выглядит следующим образом:

Интерфейс:

 namespace App\Models\Contracts\Repositories; use App\Models\Objects\DTO\User; interface IUserRepository { function Create( User $user ); } 

Бетон:

 namespace App\Models\Concrete\Eloquent; use App\Models\Contracts\Repositories\IUserRepository; use App\Models\Objects\DTO\User; class EqUserRepository implements IUserRepository { /** * Create a new user instance after a valid registration. * * @param array $data * @return User */ public function Create( User $user ) { return User::create( [ 'first_name' => $user->first_name, 'last_name' => $user->last_name, 'username' => $user->username, 'email' => $user->email, 'password' => bcrypt( $user->password ), ] ); } } 

Поставщик услуг:

 <?php namespace App\Providers; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() { // } /** * Register any application services. * * This service provider is a great spot to register your various container * bindings with the application. As you can see, we are registering our * "Registrar" implementation here. You can add your own bindings too! * * @return void */ public function register() { $this->app->bind( 'App\Models\Contracts\Repositories\IUserRepository', 'App\Models\Concrete\Eloquent\EqUserRepository' ); } } 

контроллер:

 namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use Illuminate\Contracts\Auth\Guard; use Illuminate\Contracts\Auth\Registrar; use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers; use App\Models\Contracts\Repositories\IUserRepository; use App\Models\Objects\DTO\User; class AuthController extends Controller { protected $auth; private $userRepository; public function __Construct( Guard $auth, IUserRepository $userRepo ) { ... 

Структура папок

введите описание изображения здесь

Я также видел, что мне может потребоваться объявить пространства имен в моем composer.json, поэтому я пробовал следующее, а также просто следующее:

 "autoload": { "classmap": [ "database" ], "psr-4": { "App\\": "app/", "App\\Models\\Concrete\\Eloquent\\": "app/Models/Concrete/Eloquent/", "App\\Models\\Contracts\\Repositories\\": "app/Models/Contracts/Repositories/", "App\\Models\\Objects\\DTO\\": "app/Models/Objects/DTO/" } }, 

а затем composer dump-autoload

Любые идеи, что я забываю делать?

Я заметил, что compiled.php не обновлялся.

Запустите эту функцию в строке cmd в корневой папке вашего проекта:

 php artisan clear-compiled 

Если вы также используете ошибку ниже:

BindingResolutionException в строке Container.php 749: Target [App \ Contracts \ TestContract] не работает.

Очистите кеш конфигурации с помощью:

 php artisan config:clear