CakePHP 1.2で強化されたバリデーション機能を使って、ユーザー登録時に行うバリデーションを設定してみる。
$validate配列にチェックする項目の名称とチェック内容を格納する。
ruleには配列で複数のチェック内容を設定することもできる。
password1があるのは、Authコンポーネントによって暗号化される前のパスワードをチェックするためだ。
<?php <?php class User extends AppModel { var $name = 'User'; var $validate = array( 'username' => array( 'rule1' => array( 'rule' => array('custom', '/[A-Za-z][0-9A-Za-z]*$/'), 'message' => 'MOSHIMORE IDは、先頭文字をアルファベットで入力してください。' ), 'rule2' => array( 'rule' => 'alphaNumeric', 'message' => 'MOSHIMORE IDは、半角英数で入力してください。' ), 'rule3' => array( 'rule' => array('between', 6, 12), 'on' => null, 'allowEmpty' => false, 'message' => 'MOSHIMORE IDは、6〜12文字で入力してください。' ), 'rule4' => array( 'rule' => 'isUnique', 'message' => '指定のMOSHIMORE IDは既に使用されています。別のMOSHIMORE IDを入力してください。' ) ), 'password1' => array( 'rule1' => array( 'rule' => 'alphaNumeric', 'message' => 'パスワードは、半角英数で入力してください。' ), 'rule2' => array( 'rule' => array('between', 6, 32), 'on' => null, 'allowEmpty' => false, 'message' => 'パスワードは、6〜32文字で入力してください。' ) ), 'mailaddress' => array( 'rule' => array('email', true), 'on' => null, 'allowEmpty' => false, 'message' => 'メールアドレスを正しく入力してください。' ), 'birthday' => array( 'rule' => array('date'), 'on' => null, 'allowEmpty' => false, 'message' => '生年月日を正しく選択してください。' ) ); }
