Yiiでパスワードを再入力チェックする

登録フォームをつくるときによく出てくる、パスワード入力、パスワード確認を作ってみます。YiiのValidatorに含まれていますのでモデルのrulesメソッドに一行記述するだけ簡単に実装できます。

Modelを作成

今回作るモデルはActiveRecordを継承せずに、CFormModelを継承しておきます。

class RegistForm extends CFormModel {

    public $username;
    public $email;
    public $password;
    public $verifypassword;

    public function rules() {
        return array(
            // username and password are required
            array('username, email, password, verifypassword', 'required'),
            array('email', 'email'),
            array('password', 'compare', 'compareAttribute' => 'verifypassword'),
            array('verifypassword', 'length', 'min'=>'8', 'max'=>'20'),
            array('username', 'length', 'max' => 8),
        );
    }

ユーザー名、メールアドレス、パスワード、パスワード確認のみの簡単なルールが設定されています。パスワード確認はこの部分となります。

array('password', 'compare', 'compareAttribute' => 'verifypassword'),

項目名「password」にcompareバリデーターを設定し、比較属性に「verifypassword」を設定します。たったこれだけ。

main.phpで言語設定「’language’ => ‘ja’」にしていれば日本語でエラーメッセージ「パスワードは正確に繰り返してください。」と表示されるようになります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA