Я делаю регистрационную форму с прогрессивной стадией.
Я сохраняю значение $ POST [''] [''] в Yii :: app() → session ['']
И вставка в базу данных после последнего шага.
Теперь я понял, что мне нужно использовать сценарии для каждой моей страницы регистрации.
Вопрос:
Как проверить каждую страницу регистрации без сохранения значений
$model-> save()?
Что я наделал :
controller.php
public actionCreate($id){
$model=new Admission;
if($id==0){
$model->setscenario('student');
Yii::app()->session['percent'] = 0;
if(isset($_POST['Admission']))
{
Yii::app()->session['admissionStudent'] = $_POST['Admission'];
if($model->validate('student')){
Yii::app()->session['percent'] = 25;
$this->redirect(array('create','id'=>$id+1));
}
else{
var_dump($model->getErrors());
}
}
}
}
Create_Form.php
<?php $form=$this->beginWidget('bootstrap.widgets.TbActiveForm',array(
'id'=>'admission-form',
//'enableAjaxValidation' => true,
//'htmlOptions' => array('enctype'=>'multipart/form-data'),
)); ?>
<?php echo $form->textFieldRow($model,'Name',array('class'=>'span4')); ?>
/* And other Fields */
<?php $this->widget('bootstrap.widgets.TbButton', array(
'buttonType'=>'submit',
'type'=>'primary',
'label'=>$model->isNewRecord ? 'Next' : 'Save & Proceed',
)); ?>
Model.php
public function rules()
{
return array(
array('Name,dob,SchoolLastAttended,
StandardLastStudied,QualifiedForPromotion,age,sex,medium',
'required','on'=>'student'),
}
ошибки
Он показывает, что каждое поле пустым и возвращает ошибку проверки
var_dump
array(8) { ["Name"]=> array(1) { [0]=> string(41) "Name of the Pupil
cannot be blank." } ["dob"]=> array(1) { [0]=> string(37) "Date of
Birth cannot be blank." } ["SchoolLastAttended"]=> array(1) { [0]=>
string(71) "Name of the School last attended Primary/Middle cannot be
blank." } ["StandardLastStudied"]=> array(1) { [0]=> string(45)
"Standard Last Studied cannot be blank." } ["QualifiedForPromotion"]=>
array(1) { [0]=> string(70) "Whether qualified for promotion to
Standard VI cannot be blank." } ["age"]=> array(1) { [0]=> string(27)
"Age cannot be blank." } ["sex"]=> array(1) { [0]=> string(27) "Sex
cannot be blank." } ["medium"]=> array(1) { [0]=> string(30) "Medium
cannot be blank." } }
Я понял мой ответ, я чувствую себя настолько глупо. На всякий случай, если кто-то сталкивается с подобной проблемой.
Добавить
$model->attributes = $_POST['Admission'];
к действию контроллера:
public actionCreate($id){
$model=new Admission;
if($id==0){
$model->setScenario('student');
Yii::app()->session['percent'] = 0;
if(isset($_POST['Admission']))
{
$model->attributes = $_POST['Admission'];
if($model->validate('student')){
Yii::app()->session['admissionStudent'] = $_POST['Admission'];
Yii::app()->session['percent'] = 25;
$this->redirect(array('create','id'=>$id+1));
}
}
}
}