Php 如何在Laravel Nova行动中使用接口存储库?
我正在使用来管理我的资源,我想知道如何在Nova Action中使用接口?由于接口不能实例化,我想知道如何在操作中使用接口 在我的控制器构造函数中,我创建了我的存储库,然后我可以在我的函数中使用它,但我不知道如何在Laravel操作中执行同样的操作 你知道我该怎么做吗 我的控制器中的一个示例Php 如何在Laravel Nova行动中使用接口存储库?,php,laravel,laravel-nova,Php,Laravel,Laravel Nova,我正在使用来管理我的资源,我想知道如何在Nova Action中使用接口?由于接口不能实例化,我想知道如何在操作中使用接口 在我的控制器构造函数中,我创建了我的存储库,然后我可以在我的函数中使用它,但我不知道如何在Laravel操作中执行同样的操作 你知道我该怎么做吗 我的控制器中的一个示例 private $myRepository; public function __construct( MyRepositoryInterface $myRepository, ) { $
private $myRepository;
public function __construct(
MyRepositoryInterface $myRepository,
)
{
$this->myRepository = $myRepository;
}
然后在一个函数中,我可以做如下的事情
public function destroy($id)
{
$this->myRepository->delete($id);
return response()->json( array("message" => "success") );
}
现在在我的新星行动中,我要做的是
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);
}
}
知道我如何使用我的存储库吗
谢谢 您可以执行
$myRepository=App::make(MyRepositoryInterface::class)代码>,IoC将解析它并实例化一个类实例
我假设您已经将类绑定到接口:
App::bind('MyRepositoryInterface', 'MyRepository');
MyRepository
是否实现了MyRepositoryInterface
接口?你说newmyrepository()
不起作用,但这只是一个构造函数,所以如果MyRepository
是一个类,并且它不会抛出,它就不会失败。