Ich erhalte diese Fehlermeldung:Ziel ist nicht instanziierbar. Laravel 5 - App Bindung Dienstleister
BindingResolutionException in compiled.php line 1029:
Target [App\Models\Contracts\Repositories\IUserRepository] is not instantiable.
Mein Code ist wie folgt:
Schnittstelle:
namespace App\Models\Contracts\Repositories;
use App\Models\Objects\DTO\User;
interface IUserRepository
{
function Create(User $user);
}
Beton:
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),
]);
}
}
Dienstanbieter:
<?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'
);
}
}
Controller:
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)
{
...
Ordnerstruktur
ich auch, dass ich die Namespaces in meinem composer.json erklären müssen gesehen haben, Also habe ich folgendes versucht, genau wie das obige:
und dann lief composer dump-autoload
Irgendwelche Ideen, was ich zu tun zu vergessen?
Ich habe das konkrete Repository in den Service-Ordner verschoben und ihm diesen Namespace gegeben. Immer noch der gleiche Fehler. – Jimmyt1988