根据用户权限隐藏模型字段

时间:2019-06-27 09:25:05

标签: php laravel laravel-permission

假设 user_one有权 查看purchase_price, 和 user_two 没有此权限。

我想根据用户权限动态隐藏purchase_price

  

我做了什么

我已经使用 spatie包管理了权限。

  

我尝试和搜索的内容

  • 我发现我可以使用模型本身的boot()函数来隐藏某些字段,但是我不知道它是static function还是最好的解决方案。

  • 我可以制作一个scope来处理使用if statementsselect()的API响应,但是我也不认为这是一个很好的解决方案。

  • 我也可以使用Laravel resources

1 个答案:

答案 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.
    }