Laravel Policy
打赏作者

chenxin

我在本地开发完美运行!但是在vultr的线上居然不行!并没有识别policy,我改成if语句判断后线上的项目就可以了,两个项目我用git来管理的,代码肯定都一样!这个问题可能出在哪呢?

JellyBool 回复 chenxin

代码确保一样的话,基本就是环境的问题了。比如说 windows 的大小写等,你仔细检查一下

chenxin 回复 JellyBool

我用的是Mac…我再看看

chenxin
public function editdiscussion(User $user, Discussion $discussion){
      return $user->id === $discussion->user_id;
 }

按照文档的写法放在AuthServiceProvider里面没问题呀!

天山网艾克

你是用什么软件录制桌面的?

sangda

在AuthServiceProvider里注册自定义的策略,‘App\Post’ => ‘App\Policies\PostPolicy’,key中指定的Post Model有什么用处?另外,如果不同策略中定义了相同的方法名,使用时要怎样区分?

JellyBool 回复 sangda

简单来说:注册‘App\Post’ => ‘App\Policies\PostPolicy’ 这个是为了在你执行 $user->can('update', $post) 的时候,知道 update 是那个 Policy 中的update方法。

第二个感觉不用区分,你用就是,只要你注册了对应的 Policy 就好。类似

‘App\Post’ => ‘App\Policies\PostPolicy’,
‘App\Comment’ => ‘App\Policies\CommentPolicy’