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

控制器代码

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


授权策略代码

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


服务注册

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


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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
最佳答案

写列表的时候,引入了这个,然后写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年前

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