剛剛開始了Yii的Web應用程序,並遇到了這個問題,有什麼建議,歡迎:)的Yii:多activeCheckboxlist與同型號
什麼,我想實現: - 要顯示與選項卡的形式,每個選項卡內容包含來自同一模型的複選框列表。 -so用戶可以從標籤1中選擇一些項目,從標籤2中選擇一些項目等,然後點擊提交按鈕進行處理。
問題: 但我想不出反正這樣最後一個選項卡activecheckboxlist不會破壞前一個。 我想類似這樣:[www.yiiframework.com/forum/index.php/topic/20388-2-checkboxlist-and-1-model]
但不是在2固定它,我是動態的。
是我迄今所做的:
<?php
$tabArray = array();
foreach ((Product::model()->listParentChild(0)) as $productparent) {
array_push($tabArray, array(
'label' => $productparent['name'],
'content' => CHtml::activeCheckBoxList(
$model, 'products', CHtml::listData(Product::model()->listParentChild($productparent['id']), 'id', 'name'), array(
'labelOptions' => array('style' => 'display:inline'),
'template' => '<div class="check-option">{input} {label}</div>',
'separator' => '',
)
), 'active' => ($productparent['id'] == 1 ? true : false),
));
}
?>
<?php
$this->widget('bootstrap.widgets.TbTabs', array(
'type' => 'tabs', // 'tabs' or 'pills'
'placement' => 'left',
'tabs' => $tabArray,
));
?>
,在我的產品型號:
public function listParentChild($parentid) {
$sql = "SELECT * FROM piki_product WHERE parentid=:parentid";
$productlist = Yii::app()->db->createCommand($sql);
$productlist->bindValue(":parentid", $parentid, PDO::PARAM_INT);
return $productlist->queryAll();
}
任何建議,將感激..:/
這不是一個Yii的東西,更多的是軟件架構的一般東西 - 動態嵌套的常見問題。所以,首先,你的數據庫結構如何?爲什麼 - 如果這是你想要做的 - 你是否沒有爲子 - 父關係創建單獨的關係數據庫表。接下來,您將不得不在控制器中編寫一個方法來首先對數據中存在的父子層次結構進行排序和設置。那麼你可以創建UI。這就是你以後的事,對吧? – cliffbarnes
我沒有額外的子女 - 父母關係表。稍後我會補充說明一下。 但是再一次,這將如何使我能夠更新一個具有多個activecheckboxlist的模型? – Kengary
是的,我不知道你必須這樣做,但是當構建動態嵌套列表時,這是一種常見的做法。關鍵是你的控制器上的方法將對記錄進行排序並對它們進行分類。這是困難的部分。關係表的部分原因 - 在進行這些計算時無需混淆全部數據表。 – cliffbarnes