我正在使用Laravel Repository Pattern来管理我的资源,我想知道如何在Nova Action中使用接口?由于接口不能实例化,我想知道如何在操作中使用接口?
在我的控制器构造函数中,我创建了我的存储库,然后我可以在我的函数中使用它,但是我不知道如何在Laravel Action中做同样的事情。
你知道我该怎么做吗?
我的控制器中的一个示例
private $myRepository;
public function __construct(
MyRepositoryInterface $myRepository,
)
{
$this->myRepository = $myRepository;
}
然后在一个函数中,我可以做一些类似这样的事情
public function destroy($id)
{
$this->myRepository->delete($id);
return response()->json( array("message" => "success") );
}
现在在我的Nova Action中,这是我想要做的
public function handle(ActionFields $fields, Collection $models)
{
foreach ($models as $model)
{
$myRepository = new MyRepositoryInterface(); // This doesn't work obviously
$myRepository->customManipulation($model->id);
$this->markAsFinished($model);
}
}
你知道我该如何使用我的存储库吗?
谢谢!
发布于 2020-11-18 09:10:36
您可以执行$myRepository = App::make(MyRepositoryInterface::class);
,IoC将解析它并实例化一个类实例。
我假设您已经将类绑定到接口:
App::bind('MyRepositoryInterface', 'MyRepository');
https://stackoverflow.com/questions/64755416
复制相似问题