|  RSS订阅  |  加入收藏

TP5.1中validate验证场景规则重置

TP5.1对validate验证场景中规则重置相比于5.0做了升级,可以单独为某个特定验证场景定义一个函数,系统提供了三个方法,only、remove、append。
摘要

半个多月没更了,主要是最近确实太忙了,除了项目要做,还有很多杂活要干,这不以前的存量客户都要挨个做公安备案了。外加最近去跑社保和公积金开户的事情,有点跟不上节奏,今天水文是强行逼着自己写的,原本这时候我应该在撸我的系统更新,暂时先放放,水两篇文章再说。在系统升级到TP5.1的时候发现原本使用的场景验证中的重置规则竟然失效了,翻了下手册发现,用法有变,遂记录下来,免得自己忘了。


验证场景复现。

例如在用户登录和修改信息的时候,使用到密码字段,通过定义password字段为require和min规则,限制password的必填和最小长度。

未标题-1.jpg

然后定义两个场景,一个是登陆场景(login),一个是修改场景(edit)。如果在登录控制器中直接使用scene('login')场景,就会出现密码最小长度的验证信息。作为安全角度来说,密码最小长度只在修改时需要,而在登录场景中最好不提示。这时就需要对password的规则在场景中重置。

未标题-2.jpg

TP5.0验证场景规则重置。

在5.0中,系统提供直接在场景中使用数组重置规则。如图这样既可。

未标题-3.jpg

TP5.1验证场景规则重置。

而在5.1中这个方法却失效了,如果需要重置规则,需要使用按手册上的重新定义一个场景方法。使用场景scene关键字加上场景名为方法名,通过remove或者append方法移除或追加规则。例如本例中的规则可以写成如图所示。

未标题-4.jpg


这样就完成了场景规则的重置操作。其实非常简单,主要是5.0升级到5.1的综合代价还是挺大的,因为官方5.0还在维护中,建议系统比较大的,且5.0印记比较深的程序还是别轻易升级到5.1的好。


如文章有用,点下广告吧
  ThinkPHP    验证    
转载请注明出处,未经许可禁止商用!
发表评论
*依据《网络安全法》规定,您需实名认证后才能评论!
很久没更新了
最近更新明显不够啊,水文都少了
@一艘大轮船:清理下浏览器缓存就好了,上次生成文件的时候出错过一次
大佬的订阅坏了,显示“XML 解析错误:找不到根元素”
@笛声:没有置顶啊,最上面一篇也是新发的,是雨落泪尽的主题。你不妨看看
终于更新了,看不懂,你把初中小朋友主题的那边置顶了,今天跑进来,不注意的话,还以为你没更新呢。