2

Cake Php Validationは入力フィールドの値をクリアできますか

var $validate = array(
    'name' => array(
       'isUnique' => array (

           'rule' => 'isUnique',

           'message' => 'This Person name already exists.'
       )
    )
);

name検証でエラーが続く場合は、フィールド値をクリアしたい。Cake php 検証自体で行うことは可能ですか?

4

1 に答える 1

0

必要に応じて、カスタム検証ルールを使用してそれを行うことができます。

var $validate = array(
    'name' => array(
       'isUnique' => array (
           'rule' => 'ifNotUniqueClear', // use custom rule defined below
           'message' => 'This Person name already exists.'
       )
    )
);

function ifNotUniqueClear(&$data) {
    $field = key($data);

    // see if the record exists
    $user = $this->find('first', array(
        'conditions' => array(
            $field => $data[$field]
        ),
        'recursive' => -1
    ));

    if ($user) {
        // unset or empty it, your choice
        unset($this->data[$this->alias][$field]);
        return false;
    }

    return true;
}
于 2012-05-02T14:39:58.400 に答える