我在尝试使用CakePHP 2的验证机制时遇到了最令人沮丧的时间。我试图允许输入为空,但仍然运行自定义验证规则。但是,如果我使用"allowEmpty" => true
,则会绕过我的自定义验证规则。
代码
// in $validate array
...
'company_role' => array(
'reqIfFieldValueEquals' => array(
'rule' => array('reqIfFieldValueEquals', 'individual_or_company', 'company'),
'message' => 'You must provide your role with the company!',
'allowEmpty' => true,
'required' => true
),
),
...
// my custom validation rule which will NOT run! >:(
public function reqIfFieldValueEquals($field, $compare_field, $value) {
$fieldValue = false;
foreach ($field as $name => $val) {
$fieldValue = $val;
}
$valueToCheck = $this->data[$this->name][$compare_field];
if ($valueToCheck === $value) {
return !empty($fieldValue);
}
return true;
}
问我在世界上如何允许空输入,但仍然运行我的自定义验证规则?
答案 0 :(得分:0)
不确定为什么需要对空输入进行验证,但是可以尝试禁用允许输入,如果输入为空,只需在验证规则中返回true吗?