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

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

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

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

技术分享图片

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

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

 

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

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

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


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

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

文章来自:https://www.cnblogs.com/PHPaki/p/8438962.html
© 2021 jiaocheng.bubufx.com  联系我们
ICP备案:鲁ICP备09046678号-3