我想创建一个Laravel授权策略,而不是检查user->id
我想检查相关用户的业务模型(如$user->business()->id
)
我尝试在OrderPolicy中使用以下内容,但它不起作用。
OrderPolicy
class OrderPolicy
{
....
public function edit(User $user, Order $order)
{
if ($user->business()->id === $order->business_id) {
return true;
}
}
}
刀片
...
@can('edit', $business->orders())
Edit Link
@endcan
...
有人可以告诉我如何正确地做到这一点吗?
答案 0 :(得分:0)
假设business()
是一种关系方法。
$user->business->id
将是与用户相关的商业模式的id
。
可能想要先检查->business
是否为空。
如果您不想加载该关系,也可以直接查询关系。 $user->business()->where('id', $order->business_id)->exists()
Laravel 5.4 Docs - Eloquent - Relationships - Relationship Methods vs Dynamic Properties