废话
忍不住先吐槽一下,且不说TP的功能怎么样,文档写得是真的潦草,很多复杂的情况都没有举例说明。奈何网上的资料又很少,每次只能一点点去啃源码,难受的呀,常常想换个框架或者换个语言得了,但又以没时间为由懒得行动,真是自作自受呢 ≧ ﹏ ≦。
最近在工作的时候用到TP6验证器的场景里的only、remove、append
三个方法,没想到用起来好多小问题,非常不顺手,无奈只能一个个去找具体的隐藏规则了。
正文
先附上源码路径:\vendor\topthink\framwork\src\think\Validate.php
然后说一下源码里大致的程序逻辑:
- 先把
only
+append
所有的验证规则rule
找出来,合成一个数组。- 然后去
remove
里面找,如果在remove
里面,则跳过验证。- 开始验证,即only+append-remove 的所有规则。 根据这个逻辑,
only
、remove
、append
是无所谓先后顺序的。(第一个小发现)
接下来是这次试出来的几个规则,时间有限,内容还比较少,后面会在使用的过程中再慢慢补充。
1. remove
和append
使用的前提是需要only
声明:
第一点虽然文档里没有明说,但是稍微试一下还是能很容易得出结论的。
//文档里的例子
public function sceneEdit()
{
return $this->only(['name','age'])
->append('name', 'min:5')
->remove('age', 'between')
->append('age', 'require|max:100'