Дрямс.
Есть самая тривиальная задача: регистрация юзера.
Как на Yii делается регистрация с проверкой введённых паролей (password confirmation)?
Вот что я пытаюсь делать:
В модели Юзер:
…
public function rules()
{
return array(
array('username, password, email', 'required'),
[b]array('password_confirm', 'required', 'on'=>'register'),[/b]
array('username, password, email', 'length', 'max' => 128),
array('username, email', 'safe', 'on' => 'search'),
);
}
…
В экшне:
…
$form = new CForm(‘application.views.site.registerForm’);
[b]$form['user']->model = new User('register');[/b]
$form['profile']->model = new Profile;
if ($form->submitted('register') && $form->validate())
{
…
Во вьюхе формы:
…
return array(
'elements'=>array(
'user'=>array(
'type'=>'form',
'title'=>'Login information',
'elements'=>array(
'username'=>array('type'=>'text'),
'password'=>array('type'=>'password'),
[b]'password_confirm'=>array('type'=>'password'),[/b]
'email'=>array('type'=>'text')
)
),
…
Вывод формы:
(line 4) <?php echo $form; ?>
На выходе вижу вот такое:
Fatal error: Method CForm::__toString() must not throw an exception in protected\views\site\register.php on line 4
Пасиба…