CakePHP1.3で作る会員管理システム(7) Validate
Validate
ということで無事 members の会員登録部分が動くようになりました。
ブラウザから、
http://localhost/~myname/cake/members
を開いて、いろいろクリックしたりしてみます。
で、会員の新規登録
http://localhost/~myname/cake/members/add
をやってみると、custom エラーになって登録ができません。
最初に bake でモデルを作った時に、バリデーションの設定で、email と password に custom をセットして、その内容を入れていないのが原因です。
ということで validate をちゃんと作ります。
/app/models/member.php の、 今こうなっているところを
'email' => array( 'custom' => array( 'rule' => array('custom'), //'message' => 'Your custom message here', //'allowEmpty' => false, //'required' => false, //'last' => false, // Stop validation after this rule //'on' => 'create', // Limit validation to 'create' or 'update' operations ), 'email' => array( 'rule' => array('email'), //'message' => 'Your custom message here', //'allowEmpty' => false, //'required' => false, //'last' => false, // Stop validation after this rule //'on' => 'create', // Limit validation to 'create' or 'update' operations ), 'notempty' => array( 'rule' => array('notempty'), //'message' => 'Your custom message here', //'allowEmpty' => false, //'required' => false, //'last' => false, // Stop validation after this rule //'on' => 'create', // Limit validation to 'create' or 'update' operations ), ),
以下のように書き換えます。
'email' => array( 'custom' => array( 'rule' => array('isUnique'), 'message' => 'このメールアドレスは既に登録されています', 'on' => 'create', // Limit validation to 'create' or 'update' operations ), 'email' => array( 'rule' => array('email'), 'message' => 'メールアドレスを正しく入力してください', ), 'notempty' => array( 'rule' => array('notempty'), 'message' => 'メールアドレスを入力してください', ), ),
パスワードの部分は、以下のように書き換えます。
'password' => array( 'custom' => array( 'rule' => array('custom', '/^[a-zA-Z0-9\_\-]{6,10}$/i'), 'message' => 'パスワードは6文字以上10文字以内で入力してください', ), 'notempty' => array( 'rule' => array('notempty'), 'message' => 'パスワードを入力してください', ), ),
ソース中に日本語が入りましたので文字コードをutf-8に設定して保存します。
会員の新規登録が出来ることを確認します。
http://localhost/~myname/cake/members/add