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

如果是在添加界面,验证规则一般这样

查询sql是这样的

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

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

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

 

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

验证规则没有改动,在验证的时候,验证用的sql语句自动变化了

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


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

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

posted @ 2018-02-10 15:46  PHPaki  阅读(5283)  评论(1编辑  收藏  举报