问答 / 0 / 19 / 创建于 5年前
控制器代码
授权策略代码
服务注册
然后当前登入用户都不进去自己的修改页面了,刚学laravel也不是很懂,求指教
$this->authorize('update',$user);
这样看,好像是没什么问题 :joy:
为什么你的update方法都是传User模型?第二个参数不应该是你要修改的文章模型吗?
update
User
public function update(User $user , Post $post){ return $user->id === $post->user_id }
@Remember 老哥这第二个参数是我要修改的模型,我要修改的就是User模型啊
你可以通过获取当前认证过的用户 === $mode->id
@Remember 老哥,我直接在策略类里return true,还是提示没权限
@Remember 我这样还是提示没权限,。。我丢
你的 User 模型是 \App\User 还是 \App\Models\User
是App\User
@leo
@Remember 注册了。。。
我随便在我项目里试了下,,,正常的,,,
你可以断点调试下,,,看哪里出问题了,,,
直接在策略里面return true试试,看还会不会报错,如果不报错,那就是策略有问题
return true
可能是你没有登录吧?
没有登录的情况下,是没有权限的
@tim-laravel 哈哈哈,肯定是登入了啊。
@dj666666 原因找到了吗?分享一下
你在策略里面打日志看看
public function update(User $user, User $model) { Log::info($user->id); Log::info($model->id); return $user->id == $model->id; }
这样子就好了,被自己坑了。唉
我要举报该,理由是:
写列表的时候,引入了这个,然后写edit的时候调用
$this->authorize('update',$user);
就不行了