4

私はcakephp1.3で作業しています。model.iでcakephp検証を使用してフォームを検証する必要があります。特殊文字の入力を制限するために、正規表現を追加しました。

私のコードは以下に書かれています:

var $validate = array(
        'name' => array(
            'unique'=>array(
                 'rule'      => 'isUnique',
                    'message'   => 'Already taken',
            ),
            'pattern'=>array(
                 'rule'      => '/^[a-z]$/i',
                    'message'   => 'Only letters allowed',
            ),
            'empty'=>array(
                'rule' => 'notEmpty',
                'message' => 'This field cannot be left blank',
            ))
    );

ルール「unique」が機能していません。スクリプトに「パターン」ルールを追加する前は正常に機能していました。問題は何ですか?上記のルールを並べようとしていますが、ポジショニングに問題があるのではないかと思いましたが、何も起こりませんでした。

plzは私を助けます。

4

2 に答える 2

4

$を+に置き換えます:

var $validate = array(
    'name' => array(
        'notempty' => array(
            'rule' => array('notempty'),
            'message' => 'This field cannot be left blank',
        ),
        'unique'=>array(
            'rule' => 'isUnique',
            'message' => 'Already taken'
        ),
        'pattern'=>array(
             'rule'      => '[a-zA-Z]+',
             'message'   => 'Only letters allowed',
        ),
    ),
);
于 2013-01-24T16:05:37.573 に答える
1

あなたはあなたのcharがどれくらい長くなることができるかを正確にする必要があります。«]»の後にこのデータを追加します:

  • *0以上の場合
  • +1以上の場合
  • ?0または1の場合
  • 制限間のカウント数の場合は{2,9}
  • {2、}は最小限の場合のみ
  • 最大のみ{0,1024}

http://www.php.net/manual/en/regexp.reference.meta.php

例:

   'rule'      => '/^[a-z]+$/i',
   'rule'      => '/^[a-z]{3-255}$/i',
于 2013-12-26T10:09:56.977 に答える