假设 user_one有权 查看purchase_price
,
和 user_two 没有此权限。
我想根据用户权限动态隐藏purchase_price
。
我做了什么
我已经使用 spatie包管理了权限。
我尝试和搜索的内容
我发现我可以使用模型本身的boot()
函数来隐藏某些字段,但是我不知道它是static function
还是最好的解决方案。
我可以制作一个scope
来处理使用if statements
和select()
的API响应,但是我也不认为这是一个很好的解决方案。
我也可以使用Laravel resources
。
答案 0 :(得分:0)
您可以创建策略,然后在控制器中使用can()
在刀片文件中使用@can
作为角色过滤器。
Click here以获得更多信息。
if ($this->getAuthorisedApp()->cannot('purchase_price'))
{
$this->setHidden(['purchase_price']);
// Or, $this->setVisible(['example_key']), if this works better for you.
}