1

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

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

我做了什么

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

我尝试过和搜索过的东西

  • 我发现我可以使用boot()模型本身的功能来隐藏某些字段,但我不知道如何或者它是最好的解决方案,它也是一个static function.

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

  • 我也可以使用Laravel resources.

4

1 回答 1

1

您可以创建策略,然后can()在控制器和@can刀片文件中使用角色过滤器。 点击这里了解更多信息。

if ($this->getAuthorisedApp()->cannot('purchase_price'))
    {
        $this->setHidden(['purchase_price']);

        //  Or, $this->setVisible(['example_key']), if this works better for you.
    }
于 2019-06-27T09:38:38.503 回答