2016-08-02 93 views
0

Können wir Polymorphie in Service Provider implementieren.Polymorphie in Dienstleistern Laravel 5

Ich habe diesen Code in Service-Provider

public function register() 
{ 

    $this->app->bind('App\Repositories\User\UserInterface', 'App\Repositories\User\UserRepository'); 
} 

und in meinem Usercontroller Konstruktor

public function __construct(UserInterface $user){ 

    $this->user = $user; 
} 

Bisher ist der Code funktioniert gut, aber ich muss auch AdminRepository verwenden und ich denke, in der es registrieren ist in UserRepository gekoppelt. Was würde ich tun?

Antwort

1

können Sie verwenden contextual binding

$this->app->when(AdminController::class) 
      ->needs(UserInterface::class) 
      ->give(AdminRepository::class); 

$this->app->when(UserController::class) 
      ->needs(UserInterface::class) 
      ->give(UserRepository::class);