Данные сохраняются как нулевые при использовании RadioButtonList или dropDownList - PullRequest
0 голосов
/ 15 марта 2012

Я новичок в yii.У меня есть проблема, когда мои данные, хранящиеся в radiobuttonlist или dropDownList, не сохраняются в базе данных.Это всегда показывает как ноль.вот мой код

Вид:

<?php
 $form = $this->beginWidget('CActiveForm'); 
 echo $form->label($model,'gender');
 echo $form->radioButtonList($model,'gender',array('M'=>'Male','F'=>'Female'));
echo $form->label($model,'cat');
 echo $form->dropDownList($model,'cat',$category);
 echo CHtml::submitButton('Submit');
 $this->endWidget();
?>

Контроллер:

public function actionCreate()
    {
        $model=new Test;
        if(isset($_POST['Test']))
        {
                        $model->attributes=$_POST['Test'];
                        if($model->save()){
                $this->redirect(array('index'));
                        }
                        else
                            var_dump($model->errors);
        }
                $cat = array('st'=>'STAFF','ot'=>'OTHERS');
                $model->gender='M';
        $this->render('create',array(
            'model'=>$model,'category'=>$cat
        ));
    }

Пожалуйста, помогите ... Спасибо вadvance

EDIT: после добавления обязательного в раздел правил он работает как брелок

Ну вот и модифицированная тестовая модель

public function rules()
    {

        return array(
            array('gender,cat', 'required'),
            array('name', 'length', 'max'=>45),

        );
    }

Ответы [ 2 ]

0 голосов
/ 16 марта 2012

Я вижу, вы решили это с помощью 'required', но если есть некоторые поля, которые не являются обязательными, вы можете просто использовать правило 'safe'Дело в том, что каждый атрибут вашей формы должен соответствовать правилам вашей модели.

Ознакомьтесь с Пониманием «безопасных» правил проверки .

0 голосов
/ 16 марта 2012

Разместите вашу модель здесь. Я думаю, что ваша проблема в тестовой модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...