0

我会尽力解释。我正在开发一个电子商务应用程序,为了提供后端授权,我将 laravel 策略应用于模型(产品模型)。

当我尝试在前端视图中使用相同的产品模型时,问题就出现了,所有用户都可以看到这些产品。

无论路由视图是否受到保护,策略都适用于所有模型,并且我找不到离开某些视图(例如:前端>列出产品)从没有授权策略的模型中检索信息的方法。

例如:应用于后端视图的策略:

public function view(User $user)
{
    $method = (string)$this->ability;
    if ($user->hasRole($this->Model) === null) {
        return 0;

    }
    return $user->hasRole($this->Model)->$method;
}

我需要的是在产品策略中创建另一个公共功能,在前端列出产品而不向用户请求授权。

谢谢。

4

1 回答 1

2

您可能希望在控制器中创建一个构造函数,以允许未经身份验证的用户访问产品视图。下面的代码片段提供了对控制器中除destroy(会话销毁、注销)函数之外的每个函数的访问。

public function __construct()
{
    $this->middleware('guest', ['except' => 'destroy']);
}

我希望这有助于为您指明正确的方向。

于 2017-11-29T19:38:26.013 回答