Laravel unique验证 排除当前记录

这是我第一篇在社区的博文,之前都是在博客园的,不过也好久没写博文了,也懒得搬了。反正我写博文的目的主要还是想当个记事本啥的,以后用到了这个技术,有啥不会的地方,能有个地方回去翻看一下就好,也不贪图哪些虚名啥的(关注量、浏览量等),所以也就不去搬运了。废话就到此结束吧……

Laravel的unique验证规则相信各位大佬都应该不陌生吧。就是用来验证数据库某一个字段的唯一性的。

常规用法[unique: table, column]

但是今天碰到了这么一个业务场景,就是更新某一条数据,保证name字段唯一性。但是更新的时候name字段并没有更新,而是更新了其他的字段(如mobile),这时候前端传过来的name的值还是原来的,但此时使用了上面的验证方法的话就会报错。

在我翻看了大量资料(百度)之后,发现它还有几个参数我们都忽略了。

Laravel unique验证 排除当前记录

这是laravel5.5的文档截图。后面还有except和idColumn,这不是正好满足的我的需求吗(忽略某一行数据),真是太棒了!然后就出现了这个

Laravel unique验证 排除当前记录

图中的 $this->route('transfer_app') 是resource路由的update方法中$id的值的获取方法。可以先打印一下$this->route()看一下。(友情提示,这个数据有点多,小心卡死,哈哈)
完美搞定!
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2
Rule::unique('users')->ignore(1)
1年前 评论
jamesZhao 1年前
Imuyu (作者) 1年前
panda-sir

楼上正解

1年前 评论

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