Проблема С Activedropdownlist

всем привет

не получается обновить в базе значение поля на выбранное в activeDropDownList…

а новое значение из текстового поля - обновляется успешно

кусок кода из контроллера =


$form = OwnDocs::model()->findByPk($id);

if (!empty($_POST['OwnDocs'])) 

{

    $form->attributes=$_POST['OwnDocs'];

    if($form->validate()) {

        $form->save();

    }

}

кусок кода из представления =


<?php echo Chtml::activeTextField($form, 'title', array ()) ?>

<?php echo Chtml::activeDropDownList($form, "type", array(CHtml::listData(OwnDocs::model()->findAll(), 'type', 'type'),)) ?>

модель = extends CActiveRecord

p.s. понимаю, что тема изъезженная - но помогите плиз

возможно нужно в модели в методе rules записать для ‘type’,‘safe’

у мен в safeAttributes() ‘type’ указан

странно, но все сработало, когда для ‘type’ сделал ‘required’…

интересно, почему - это?

Возможно опечатка где-то. Код модели все же не был бы лишним.

вот код модели


class OwnDocs extends CActiveRecord 

{

//  `c_all_docs` = `id_doc`, `type`, `title`, `link`, `dt`, `show`

  

  public $id_doc;

  public $type;

  public $title;

  public $link;

  public $dt;

  public $show;

  

  

public function safeAttributes()

{

  return array(

    'type',

    'title',

    'link',

    'dt',

    'show',

  );

} 


  public function rules()

  {

    return array(

        array('title,type', 'required',

            'message'=>'Поле "{attribute}" должно быть обязательно заполнено!',

            ),          

    );

  }

  

  public function attributeLabels()

  {

    return array(

        'type'=>'Тип доукмента',

        'title'=>'Название документа',

        'dt'=>'Дата на сайте',

        'show'=>'Показать/скрыть',

    );

  }   

  


  public static function model($className=__CLASS__)

  {

    return parent::model($className);

  }


  public function tableName()

  {

    return 'c_all_docs';

  }

  

}

Какая у вас версия Yii?

С 1.1. safeAttributes() не поддерживается уже

Upgrading from Version 1.0 to 1.1

  1. Changes Related with Model Scenarios

Removed CModel::safeAttributes(). Safe attributes are now defined to be those that are being validated by some rules as defined in CModel::rules() for the particular scenario.

http://www.yiiframework.com/doc/guide/1.1/en/upgrade#changes-related-with-model-scenarios

хороший вопрос…

есть возможность программно узнать свою версию?

Я такого древнего метода даже и не застал.

Зато почти угадал причину. Атрибут не считался безопасным, не сохранялся. А как только его объявили "required" он стал учитываться при массовом присваивании.

echo Yii::getVersion();

ну да

получил такую вот версию = 1.1.12

Значит метод safeAttributes() не поддерживается

понято, ВСЕМ спасибо за подсказки!

p.s. а как удалить optiongroup которая сейчас равна 0 ?