protected $_validate = array(
array('field1,field2','check','错误提示',0,'callback',3),
);以上代码不会调用 check 函数进行自动验证,当字段为1个的时候正常。解决的方法是将第4个参数设置为1,或者修改TP核心文件自己修复。
//TP多字段验证存在BUG:
//在“值不为空时才验证”和“存在该字段就验证”的情况下,多字段验证不会激活
//这是因为获取data字段值的时候,检查时使用的数组索引是字符串'field1,field2'
//这边临时解决的方法是只检查第一个字段是否存在或者不为空。
//if(isset($data[$val[0]])) 原代码
$fields = explode(",",$val[0]); //新代码
if(isset($data[$fields[0]])) //新代码 最佳答案