Laravel 5用户角色检查之前

时间:2015-12-01 17:54:47

标签: laravel laravel-5.1

我无法弄清楚如何正确地做到这一点。 我有用户可以创建文章,可以是viewedediteddeleted。如果当前登录的用户不是文章的创建者,我想限制编辑和删除操作。 我已经使用策略完成了这项工作,并在表单请求中使用Gate,但如果我理解正确,FormRequest仅用于POST请求。我目前将FormRequest作为参数传递给getEdit()动作。这似乎不对。

那么如何确保用户既不能访问也不能编辑文章?

1 个答案:

答案 0 :(得分:0)

如果您已经定义了一个策略,您可以使用控制器操作中的Gate外观直接访问它,如下所示:

public function getEdit($id)
{
    $reference = Reference::findOrFail($id);

    if (Gate::denies('owns-reference', $reference))
        abort(403);

    return view('reference.edit')
           ->with('reference', $reference);
}

请确保将Gate包含在您的文件顶部,如下所示:

use Gate;