允许空输入但运行自定义验证规则 - CakePHP 2

时间:2015-07-24 18:56:08

标签: php cakephp cakephp-2.0

我在尝试使用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;
}

我在世界上如何允许空输入,但仍然运行我的自定义验证规则?

1 个答案:

答案 0 :(得分:0)

不确定为什么需要对空输入进行验证,但是可以尝试禁用允许输入,如果输入为空,只需在验证规则中返回true吗?