0

おはようございます(少なくともアリゾナでは)。

モデルで簡単な検証チェックを実行しています。派手なものはありません。

$this->loadModel('Something');
$data = array(
    'foo_id' => '1',
    'bar' => 'John'
); 
$this->Something->save($data);

----------------------------------------

class Something extends AppModel {
    public $validate = array(
        'foo_id' => array(
            'notEmpty' => array(
                'rule' => 'notEmpty',
                'message' => 'Foo id is missing',
                'required' => true
            ),
            'naturalNumber' => array(
                'rule' => 'naturalNumber',
                'message' => 'Foo id must be greater than 0',
                'required' => true
            )
        )
    );
}

これは簡単なはずですが、Something.foo_id常に自然数の検証に失敗します。Something.idが定義されていないことに注意してsave()くださいINSERT。値が 0 より大きいことを確認し、強制的に整数にしました。私はアイデアがありません。誰かが何が起こっているのかを推測していただければ幸いです。助けてくれてありがとう。

4

1 に答える 1

3

ドキュメント ( http://book.cakephp.org/2.0/en/models/data-validation.html#Validation::naturalNumber ) またはアップグレード ガイド ( http://book.cakephp.org /2.0/en/appendices/2-2-migration-guide.html ) このルールが 2.2 で追加されたことに気付くはずです。

したがって、このルールをアップグレードするか、アプリ モデルに手動で追加してください

于 2012-10-09T17:48:13.023 に答える