【发布时间】:2019-01-18 09:53:04
【问题描述】:
假设我对Product 资源和Product 模型有is_banned 字段的“禁止”操作。已被禁止的Product(is_banned=1)的详情页无需显示“禁止”操作。
Laravel Nova 文档提供了基于管理员是否被授权执行隐藏操作的示例:
public function actions(Request $request)
{
return [
(new Actions\EmailAccountProfile)->canSee(function ($request) {
return $request->user()->can(
'emailAnyAccountProfile', User::class
);
}),
];
}
但它没有涵盖当在单个资源的上下文中调用此方法时(在其详细信息页面上),我如何在我为canSee 分辨率提供的闭包中获取当前资源的模型实例。
actions() 方法是我们注册可用操作的地方,在我的例子中属于 Product Nova 资源类,但它也无法访问 Eloquent 模型的上下文。
如何做到这一点?
【问题讨论】:
标签: laravel laravel-nova