Laravel Contextual binding same class with different type of classes in different places

337 Views Asked by At

I want to bind same class with different type of classes depending on Controller name , for example

$this->app->bind(BaseFormRequest::class,function(){
            return new CategoryFormRequest;
        });
$this->app->bind(BaseFormRequest::class,function(){
            return new TagFormRequest;
        });

I want CategoryFormRequest to be bind instead of BaseFormRequest if it was use in CategoryController, same as TagFormRequest to be bind instead of BaseFormRequest if it was use in TagController

I have used when() but it doesn't work as expected

 $this->app->when(CategoryController::class)
        ->needs(BaseFormRequest::class)
        ->give(function(){
            return new CategoryFormRequest();
        });

Thanks !

0

There are 0 best solutions below