Код: Выделить всё
<?php
class RegisterForm extends CFormModel
{
public $username;
public $password;
public $password_check;
public $email;
public $displayname;
public function rules()
{
return array(
array('username, password, password_check, email', 'required'),
array('username', 'length', 'min'=>3, 'max'=>64),
array('password', 'length', 'min'=>6, 'max'=>128),
array('password_check', 'compare', 'compareAttribute'=>'password'),
array('email', 'email'),
array('username', 'username')
);
}
public function username($attributes, $params)
{
$this->addError('username', 'Будьте внимательнее');
}
?>
Код представления:
Код: Выделить всё
<?php
$this->pageTitle=Yii::app()->name . ' - Регистрация';
$this->breadcrumbs=array(
'Register',
);
?>
<h1>Регистрация</h1>
<p class="note">Помеченные <span class="required">*</span> поля обязательны</p>
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'register-form',
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
));
?>
<div class="row">
<?php echo $form->labelEx($model,'username',array('label'=>'Логин')); ?>
<?php echo $form->textField($model,'username'); ?>
<?php echo $form->error($model,'username'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'email',array('label'=>'E-mail')); ?>
<?php echo $form->textField($model,'email'); ?>
<?php echo $form->error($model,'email'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'password',array('label'=>'Пароль')); ?>
<?php echo $form->passwordField($model,'password'); ?>
<?php echo $form->error($model,'password'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'password_check',array('label'=>'Повторите')); ?>
<?php echo $form->passwordField($model,'password_check'); ?>
<?php echo $form->error($model,'password_check'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'displayname',array('label'=>'Отображаемое мия')); ?>
<?php echo $form->passwordField($model,'displayname'); ?>
<?php echo $form->error($model,'displayname'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton('Зарегистрироваться'); ?>
</div>
<?php $this->endWidget(); ?>
Код: Выделить всё
public function actionRegister()
{
$model = new RegisterForm;
if(isset($_POST['ajax']) && $_POST['ajax']==='register-form')
{
echo RegisterForm::validate($model);
Yii::app()->end();
}
if(isset($_POST['RegisterForm']))
{
$model->attributes=$_POST['RegisterForm'];
// validate user input and redirect to the previous page if valid
if($model->validate())
{
$this->redirect(Yii::app()->user->returnUrl);
}
}
$this->render('register', array('model'=>$model));
}
}