2016-08-02 52 views
0

我們可以在服務提供者中實現多態嗎?服務提供者的多態性laravel 5

我在服務提供商

public function register() 
{ 

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

,並在我的UserController的構造

public function __construct(UserInterface $user){ 

    $this->user = $user; 
} 

到目前爲止,代碼工作正常,這個代碼,但我也需要使用AdminRepository,我覺得在它註冊耦合到UserRepository中。我會怎麼做?

回答

1

您可以使用contextual binding

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

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