在cakephp验证textarea

时间:2012-12-04 07:47:41

标签: cakephp cakephp-2.0 cakephp-2.1

我想验证textarea不是空的!但是这段代码不能正常工作,这并没有向我显示模型中的验证错误消息!我的代码如下,

public $validate = array(
    'address' => array(
        'rule' => array('validateAddress'),
        'message'  => 'Address is required',
    ),
);    

public function validateAddress() {
    if(empty($this->data[$this->alias]['address'])) {
        debug('hi');
        return true;
    }
    return true;
}

}

请帮我在cakephp中进行textarea验证!欢迎任何建议!

2 个答案:

答案 0 :(得分:3)

您的自定义验证规则始终返回true。验证失败时应返回false

public function validateAddress() {
    if(empty($this->data[$this->alias]['address'])) {
        //debug('hi');
        return false;
    }
    return true;
}

也就是说,对于这样一个简单的规则,您应该使用核心验证规则notempty

public $validate = array(
    'address' => array(
        'rule'    => 'notEmpty',
        'message' => 'Address is required'
    )
);

答案 1 :(得分:1)

您总是返回true。所以它总会验证。请尝试以下方法:

public function validateAddress() {
    if(empty($this->data[$this->alias]['address'])) {
        debug('hi');
        return false;
    }
    return true;
}