2016-08-02 2 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); 
Смежные вопросы