我需要在论坛上授权用户。 因此在刀片中,我在显示表单回复主题之前已经有@can('editPost', $post)
。我的PostPolicy
类有一个editPost
方法,如果它是用户自己的帖子,则验证为true。无模式授权政策
但是,当我想进行简单检查时出现问题,例如deletePost()
。这种检查是否Auth::user()->isAdmin
public function deletePost(User $user) {
return Auth::user()->isAdmin;
// return $user->isAdmin
}
然而,这甚至不会被调用,因为我不及格的Post
我的现实世界的应用程序要复杂得多的实例,但我使用isAdmin
作为一个简单的例子。
我猜定义$gate->define('deletePost', 'App\Policies\[email protected]');
在AuthServiceProvider
可以工作,但将最终分开我的定义和方法,并最终为大型应用程序杂波AuthServiceProvider
只是为别人寻找的答案,这里有一个好办法在不使用模型bi的情况下注册“全球”政策nding。 http://laravel-tricks.com/tricks/using-51-authorization-without-models –