0

私はcakephpを初めて使用し、プログラム名のデータ検証を行おうとしています。プログラム名に英数字または文字のみを許可したい。数字のみまたは特殊文字を許可したくありません。2番目のルールのため、実際にはNumericまたはalphaNumericを許可していません。これが私のコードです

$validate = array(    
    'program_name' => array(
        'required' => array(
            'rule' => 'isUnique',
            'allowEmpty'=> false,
            'message' => 'This Program Name already exists. Please enter a Program Name'
        ),
        'alphaNumeric'=> array(
            'rule' => 'alphaNumeric',
            'message'=> 'Please enter a valid name'
        ),
        'name' => array(
            'rule'    => '/^[a-zA-Z]*$/',
            'message' => 'Only letters or alphaNumerics. Please enter a valid name')
        )
    )
    //Validation rules for other fields, if any
);
4

1 に答える 1

1

'required'の使用はオフです、おそらくこれであるはずです:

$validate = array(    
    'program_name' => array(
        'isUnique' => array(
            'rule' => 'isUnique',
            'allowEmpty'=> false,
            'required' => true,
            'message' => 'This Program Name already exists. Please enter a Program Name'
        ),
        'alphaNumeric'=> array(
            'rule' => 'alphaNumeric',
            'message'=> 'Please enter a valid name'
        ),
        'name' => array(
            'rule'    => '/^[a-zA-Z]*$/',
            'message' => 'Only letters or alphaNumerics. Please enter a valid name')
        )
    )
    //Validation rules for other fields, if any
);

ここで、「必須」の使用を修正したので、質問に移ります。文字列が英数字だけでなく英数字で構成されているかどうかを確認する場合は、「名前」ルールで定義されている正規表現を編集する必要があります。この質問への回答から正規表現を使用することをお勧めします。したがって/^[a-zA-Z]*$/、前述の投稿の正規表現に置き換えてから、alphaNumericというルールを削除すると、コードは次のようになります。

$validate = array(    
    'program_name' => array(
        'isUnique' => array(
            'rule' => 'isUnique',
            'allowEmpty'=> false,
            'required' => true,
            'message' => 'This Program Name already exists. Please enter a Program Name'
        ),
        'name' => array(
            'rule'    => '/^(?![0-9]*$)[a-zA-Z0-9]+$/',
            'message' => 'Only letters or alphaNumerics. Please enter a valid name')
        )
    )
    //Validation rules for other fields, if any
);
于 2013-03-05T07:07:58.087 に答える