在 update 方法中需要判断用户名不能重复应该怎么做?

原先的store方法在验证参数时用到了'name' => 'required|max:50|min:3|unique:users',来验证当前传入的名字不能存在与数据库中,但是在update方法中我加入了unique:users后,不修改名字的情况下提交会提示名称已存在。是不是这种需求只能手动去查询判断?有没有简单的办法去处理呢?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
KayuHo
最佳答案

'unique:users,name,'.$user->id

unique:table,column,except,idColumn

第三个参数排除指定的 id

文档

5年前 评论
讨论数量: 6
KayuHo

'unique:users,name,'.$user->id

unique:table,column,except,idColumn

第三个参数排除指定的 id

文档

5年前 评论

@Joy_he 你好,我想问一下你在贴这个文档地址时是如何找到这个准确的锚点的?我看页面上没有点击的地方啊,不会是查看源代码找的吧
https://learnku.com/docs/laravel/5.6/validation/1372#rule-unique 这个地址最后的 #rule-unique

5年前 评论

发现laravel 5.6需要这样写才起作用:'name' => ['required',Rule::unique('users')->ignore($user->id),'max:50'] , 开头引入命名空间use Illuminate\Validation\Rule;

5年前 评论

@tsin 我倒没有试 5.6 一方面 5.5 是长期支持版 优先考虑 另一方面教程是针对 5.5 的
话说 5.6 的这种写法看起来好繁琐啊

5年前 评论

第一种方法在Laravel6.x不管用了,tsin的方法可以用

3年前 评论

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