в моделе добавьте
public function afterFind()
{
if ($this->data_multiselect=='') $this->data_multiselect=array();
else $this->data_multiselect= unserialize($this->data_multiselect);
return parent::afterFind();
}
public function beforeSave()
{
$this->data_multiselect_sub= serialize($this->data_multiselect);
return parent::beforeSave();
}
в контроллере
if (isset($_POST['LUser']['data_multiselect']))
$model_user->data_multiselect= $_POST['LUser']['data_multiselect'];
else ($model_user->data_multiselect = array());
в viewer
$types[id]=array(1=>'первый', 2=>'второй', 3=>'третий');
echo $form->listBox($model, 'data_multiselec', $types, array('multiple' => 'multiple' ));
и конечно пропишите поле в базе данных как строку
в rules модели
public function rules() {
return array(
array('названия полей, названия полей,data_multiselec', 'safe', 'on' => 'search', ),
array('названия полей, data_multiselec', 'default', 'value' => 0),
array('avatar', 'file', 'allowEmpty'=>true, 'types'=>'jpg, gif, png'),
);
}
в public function search() модели
...
$criteria->compare('data_multiselec', $this->data_multiselec);
return new CActiveDataProvider($this, array(
'criteria' => $criteria,
));
и конечноже свойство в моделе
public $data_multiselec;
Комментарии
Оставить комментарий
Фреймворки. Famworks ( программная платформа)
Термины: Фреймворки. Famworks ( программная платформа)