关于ThinkPHP5验证器中唯一性验证unique的问题

Posted phpaki

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于ThinkPHP5验证器中唯一性验证unique的问题相关的知识,希望对你有一定的参考价值。

如果是在添加界面,验证规则一般这样
技术分享图片

查询sql是这样的
技术分享图片

因为定义了独立的验证类,所以按照手册上的,如果想添加一些变量,得怎么做???(见识不足,没有看到其他在独立类中验证引入外部其他变量的用法)

技术分享图片

像这样的规则,正常在编辑界面验证的时候,提交自身的数据常常会提示重复,

之前一直没有找到解决方案,网络上也没有找到合适的解决方案

 

今天发现,如果表单中把主键id也作为数据传入到验证器中(name要和主键同名)
加了这句 技术分享图片

验证规则没有改动,在验证的时候,验证用的sql语句自动变化了
技术分享图片

也就说明如果在验证数据中传入主键值,那么在验证唯一性的时候,会排除传入主键的id的数据。


手册里里面倒没说这种方式可以排除某主键。(不知道是不是手册又更新了)试了几个页面的验证都可以。
具体原因,以后有空得去看源码了,暂时不深入研究。

如果有哪位高人愿意点拨一下,愿闻其详哈哈







以上是关于关于ThinkPHP5验证器中唯一性验证unique的问题的主要内容,如果未能解决你的问题,请参考以下文章

laravel框架 5.4 关于验证和添加存在的bug

laravel 验证 unique 除了当前记录 验证唯一性

关于LNMP服务器 Thinkphp5验证码不显示问题

复合唯一密钥验证 - laravel

模型字段唯一性验证错误处理

laravel 8:验证唯一的多个表