0

登録モデル(ログイン、パスワード、電子メール、モバイルのフィールドがあります)があり、ログインアクションで登録のフィールド(ログインやパスワードなど)の一部を使用し、検証したいと考えています。モデルフィールドを再利用し、シナリオに基づいてフィールドを検証するにはどうすればよいですか。

4

2 に答える 2

1

フォーム モデルを再利用して、フォーム内およびアクションごとにカスタム検証ルールを記述できると思います。例えば。ハリ あなたはこのように試してみてください...

class RegistrationForm extends CFormModel {

  public $login;
  public $password;
  public $email;
  public $mobile;

  public function rules() {
    return array(
      array('login,password','loginValidator','on'=>'login'),
      array('login,password,email,mobile','registerValidator','on'=>'register')
    );
  }

  public function loginValidator() {
    dummyfunc($this->login,.....);
  }

  public function registerValidator() {
    dummyfunc($this->login,.....);
  }

}

コントローラー部:

$formModel = new RegistrationForm('login');
$formModel->attributes = $_POST['RegistrationForm'];
if($formModel->validate()) {
  #..........;
} else {
  #..........;
}

ごきげんよう!!!

于 2011-11-01T11:03:35.147 に答える
0

ユーザーモジュールを使用することをお勧めします。

これは、ユーザー モジュールのディレクトリ構造の例です。

protected/modules/user/
    controllers/
        LoginController.php
        LogoutController.php
        RegisterController.php
        ...
    models/
        Login.php
        Register.php
        ...
    views/
        user/
            login.php
            register.php
            ...

yii-userのディレクトリ構造が役に立つかもしれません。

于 2011-11-02T21:14:39.773 に答える