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 でのテキストエリアの検証を手伝ってください! どんな提案も大歓迎です!

4

2 に答える 2

3

カスタム検証ルールは常に を返しますtruefalse検証が失敗すると、次のように返されます。

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'
    )
);
于 2012-12-04T07:59:55.450 に答える
1

あなたはいつも戻ってきtrueます。したがって、常に検証されます。以下を試してください:

public function validateAddress() {
    if(empty($this->data[$this->alias]['address'])) {
        debug('hi');
        return false;
    }
    return true;
}
于 2012-12-04T08:00:29.703 に答える