在生成 policy 之前,用户 1 更新用户 2 的信息

在使用policy“用户只能编辑自己的资料”之前,id=>1的用户可以访问 id=>2的用户编辑页面,比如:现在使用id=>1的账户登陆,然后访问 http://larabbs.test/users/2/edit
file

现在尝试更新 id=>2的用户的自我介绍部分(保留 id=> 2 的用户名字不变),然后点击save按钮,就会报错,说是用户名已经使用,如果更新 id => 1的用户自我介绍,保持名字不变,就不会报错,不太理解为什么会有这个问题,请指教,谢谢。

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

因为在 UserRequest.php 中有一个规则 'name' => 'unique:users,name,' . Auth::id() ,当你使用用户1的身份去更新用户2的资料的时候,由于此时 Auth::id() 是等于1,这是就会触发 unique 规则,触发规则不是关键,关键是这里忽略的是用户1,并不是忽略用户2,所以会提示用户名重复。

5年前 评论
讨论数量: 2

因为在 UserRequest.php 中有一个规则 'name' => 'unique:users,name,' . Auth::id() ,当你使用用户1的身份去更新用户2的资料的时候,由于此时 Auth::id() 是等于1,这是就会触发 unique 规则,触发规则不是关键,关键是这里忽略的是用户1,并不是忽略用户2,所以会提示用户名重复。

5年前 评论

建议 多看看文档 ,或者补补 教程一

4年前 评论

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