2014-03-26 115 views
1

這裏是ListBuilder部件代碼:如何將yii小部件的內容保存到數據庫?

$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

我想保存整個列表我選擇正確的名單上我的數據庫。 如何做到這一點?

回答

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

上述更新在數據庫中的人,並設置新國家。如果我理解你的問題正確,你想創建新的條目(也許在不同的表格),而不是改變現有的條目。爲此,您可以輕鬆修改updateUserCountry()函數以創建新的Person而不是更新它。

+0

謝謝... 但是,我在哪裏觸發我的小部件中的「Moveperson」動作? – satya

+0

@satya周圍的'form'定義了哪個動作被調用。 – Kai

相關問題