Php Yii: иметь пользовательскую проверку клиента

0

Я делаю регистрационную форму с прогрессивной стадией.
Я сохраняю значение $ 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." } }
Теги:
validation
yii

1 ответ

0

Я понял мой ответ, я чувствую себя настолько глупо. На всякий случай, если кто-то сталкивается с подобной проблемой.

Добавить

$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));
            }
        }
    }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню