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
