#forms #forms-authentication #yii #yii-inheritance
#формы #формы-аутентификация #yii #yii-наследование
Вопрос:
У меня есть модель регистрации (в которой есть поля login, password, email, mobile), и я хочу использовать некоторые поля из регистрации (например, логин и пароль) в действии входа в систему, а также проверить его. Как я могу повторно использовать поля модели, а также проверять поля на основе сценария.
Ответ №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 {
#..........;
}
хорошего дня!!!
Ответ №2:
Лучше использовать пользовательский модуль.
Это пример структуры каталогов пользовательского модуля:
protected/modules/user/
controllers/
LoginController.php
LogoutController.php
RegisterController.php
...
models/
Login.php
Register.php
...
views/
user/
login.php
register.php
...
Структура каталогов yii-user может быть полезна.