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