使用策略的Laravel授权

时间:2016-09-28 01:16:18

标签: laravel laravel-authorization

所以我需要帮助学习如何创建授权策略。我很了解盖茨,他们为我工作,但是当我制定政策时,它不起作用。

这是我正在使用的代码。我认为我的问题是试图找出你在哪里检查给定模型函数的授权?

public function update(User $user, Message $message)
{
   return true;
}

在这里,我只是将测试切换为真或假,只是为了看看它是如何工作的。但是当我在Message控制器中执行此操作时:

if ($user->can('update', $message)) {
    return 'You can update this post';
}

它不起作用。我还尝试使用$ this-> authorize('update',$ message)检查控制器中的授权的另一种方法;但那也不起作用。

谢谢。

1 个答案:

答案 0 :(得分:1)

所以我让系统在它上面运行后运行。我改变了很多东西,陷入了很多地方,以至于我并不知道我做了什么。但似乎最大的不同之处在于改变了我注册政策的方式。在AuthServiceProvider中的policies数组中,显然是一个在格式化过程中写入的示例。即使文档显示最后以:: class格式注册模型和策略,我也使用了String格式。我想这是我的问题。另外,我必须将一个实际的消息实例传递给authorize方法,而不是使用Message :: class,方法。