2016-08-02 17 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);