thinkphp5验证某个字段必须规则失效,tp5的验证场景下必填require无效
查找原因发现,原来输入不为 空,而是一个 空格。
TP版本:5.0.24,查看版本 echo THINK_VERSION;
查看源码发现
switch ($rule) {
case 'require':
// 必须
$result = !empty($value) || '0' == $value;
break;
打印一下看看
var_dump(empty(" "));
// bool(false)
所以,我们需要先将需要验证的字段过一个 过滤 后再去用 require 规则。这里提供几个方法给大家:
一、先进行 trim 再去验证必填
trim() 函数移除字符串两侧的空白字符或其他预定义字符。
语法
trim(string,charlist)
参数 | 描述 |
---|---|
string | 必需。规定要检查的字符串。 |
charlist | 可选。规定从字符串中删除哪些字符。如果被省略,则移除以下所有字符:
|