如何在 Laravel Nova Action 中使用接口存储库?
How to use an Interface Repository in a Laravel Nova Action?
我正在使用 Laravel Repository Pattern 来管理我的资源,我想知道如何在 Nova Action 中使用界面?由于无法实例化接口,我想知道如何在我的操作中使用我的接口?
在我的 Controller 构造函数中,我创建了我的存储库,然后我可以在我的函数中使用它,但我不知道如何在 Laravel 动作中做同样的事情。
知道我该怎么做吗?
我的控制器中的示例
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);
}
}
知道如何使用我的存储库吗?
谢谢!
你可以做 $myRepository = App::make(MyRepositoryInterface::class);
,IoC 会解析它并实例化一个 class 实例。
我假设您已经将 class 绑定到接口:
App::bind('MyRepositoryInterface', 'MyRepository');
我正在使用 Laravel Repository Pattern 来管理我的资源,我想知道如何在 Nova Action 中使用界面?由于无法实例化接口,我想知道如何在我的操作中使用我的接口?
在我的 Controller 构造函数中,我创建了我的存储库,然后我可以在我的函数中使用它,但我不知道如何在 Laravel 动作中做同样的事情。
知道我该怎么做吗?
我的控制器中的示例
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);
}
}
知道如何使用我的存储库吗?
谢谢!
你可以做 $myRepository = App::make(MyRepositoryInterface::class);
,IoC 会解析它并实例化一个 class 实例。
我假设您已经将 class 绑定到接口:
App::bind('MyRepositoryInterface', 'MyRepository');