使用模型策略的时候,连当前登入账号修改自己的个人信息都进不去了

控制器代码

使用模型策略的时候,当前登入账号修改自己的个人信息都进不去了


授权策略代码

使用模型策略的时候,当前登入账号修改自己的个人信息都进不去了


服务注册

使用模型策略的时候,当前登入账号修改自己的个人信息都进不去了


然后当前登入用户都不进去自己的修改页面了,刚学laravel也不是很懂,求指教

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

写列表的时候,引入了这个,然后写edit的时候调用 $this->authorize('update',$user);就不行了

file

4年前 评论
讨论数量: 19

这样看,好像是没什么问题 :joy:

4年前 评论
dj666666 (楼主) 4年前

为什么你的update方法都是传User模型?第二个参数不应该是你要修改的文章模型吗?

public function update(User $user , Post $post){
    return $user->id === $post->user_id
}
4年前 评论
dj666666 (楼主) 4年前
dj666666 (楼主) 4年前
轻描淡写 (作者) 4年前
dj666666 (楼主) 4年前
dj666666 (楼主) 4年前

@Remember 老哥这第二个参数是我要修改的模型,我要修改的就是User模型啊

4年前 评论

你可以通过获取当前认证过的用户 === $mode->id

4年前 评论
dj666666 (楼主) 4年前
Remember (作者) 4年前
dj666666 (楼主) 4年前

@Remember 老哥,我直接在策略类里return true,还是提示没权限

file

4年前 评论

@Remember
我这样还是提示没权限,。。我丢
file

4年前 评论
Remember 4年前
leo

你的 User 模型是 \App\User 还是 \App\Models\User

4年前 评论

@Remember 注册了。。。

file

4年前 评论

我随便在我项目里试了下,,,正常的,,,

你可以断点调试下,,,看哪里出问题了,,,

4年前 评论
dj666666 (楼主) 4年前
largezhou (作者) 4年前
dj666666 (楼主) 4年前
largezhou (作者) 4年前
dj666666 (楼主) 4年前
dj666666 (楼主) 4年前

直接在策略里面return true试试,看还会不会报错,如果不报错,那就是策略有问题

4年前 评论
dj666666 (楼主) 4年前

可能是你没有登录吧?

4年前 评论

file
没有登录的情况下,是没有权限的

4年前 评论

@tim-laravel 哈哈哈,肯定是登入了啊。

4年前 评论

@dj666666 原因找到了吗?分享一下

4年前 评论
dj666666 (楼主) 4年前

你在策略里面打日志看看

public function update(User $user, User $model)
{
    Log::info($user->id);
    Log::info($model->id);
    return $user->id == $model->id;
}
4年前 评论
dj666666 (楼主) 4年前
dj666666 (楼主) 4年前
FMW (作者) 4年前
dj666666 (楼主) 4年前

写列表的时候,引入了这个,然后写edit的时候调用 $this->authorize('update',$user);就不行了

file

4年前 评论

这样子就好了,被自己坑了。唉

file

4年前 评论
dj666666 (作者) (楼主) 4年前
温故知新 4年前
largezhou 4年前
FMW 4年前
dj666666 (作者) (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!