我有注册模式(其中包含登录,密码,电子邮件,移动设备等字段),并希望在登录操作中使用注册中的某些字段(如登录名和密码),并对其进行验证。如何重用模型字段,还可以根据方案验证字段。
答案 0 :(得分: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 {
#..........;
}
度过愉快的一天!!!
答案 1 :(得分:0)
最好使用用户模块。
这是用户模块的目录结构示例:
protected/modules/user/
controllers/
LoginController.php
LogoutController.php
RegisterController.php
...
models/
Login.php
Register.php
...
views/
user/
login.php
register.php
...
yii-user的目录结构可能很有用。