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 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 2
Rule::unique('users')->ignore(1)
3年前 评论
jamesZhao 3年前
Imuyu (作者) 3年前
panda-sir

楼上正解

3年前 评论

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