如何将内容从yii小部件保存到数据库?

时间:2014-03-26 05:35:42

标签: yii yii-extensions

这里是ListBuilder小部件代码:

$this->widget('ext.widgets.multiselects.XMultiSelects',array(
'leftTitle'=>'Australia',
'leftName'=>'Person[australia][]',
'leftList'=>Person::model()->findUsersByCountry(14),
'rightTitle'=>'New Zealand',
'rightName'=>'Person[newzealand][]',
'rightList'=>Person::model()->findUsersByCountry(158),
'size'=>20,
'width'=>'200px',
));

列表生成器视图this

我想将我选择的整个列表保存到我的数据库中。 怎么做?

1 个答案:

答案 0 :(得分:0)

源代码可用,因此您只需查看控制器:

public function actionMovePersons()
{
   if(isset($_POST['Person']['australia']))
   {
      foreach ($_POST['Person']['australia'] as $id)
      Person::model()->updateUserCountry($id, 14);
   }

   if(isset($_POST['Person']['newzealand']))
   {
      foreach ($_POST['Person']['newzealand'] as $id)
      Person::model()->updateUserCountry($id, 158);
   }
   Yii::app()->user->setFlash('saved',Yii::t('ui','Data successfully saved!'));
   $this->redirect(array('site/extension','view'=>'listbuilder'));
}

在模型中:

public function updateUserCountry($id, $country_id)
{
   $model=$this->findByPk($id);
   $model->country_id=$country_id;
   $model->update('country_id');
}

以上更新了数据库中的Person并设置了新的国家/地区。如果我理解你的问题是正确的,你想要创建新的条目(可能在不同的表中),而不是改变现有的条目。为此,您可以轻松修改updateUserCountry()功能以创建新的Person,而不是更新它。