データベースにカテゴリとサブカテゴリを保存しています。次のようにCHtmlドロップダウンでそれらを表示したい:
Patrent_cat
sub_cat1
sub_cat2
Parent_cat2
...
私のカテゴリテーブルはこのようなものです
id name parent_id
タプル自体が親の場合、parent_id は 0 です。
私はすでにカテゴリモデルでこれを試しました:
public function relations()
{
return array(
'getparent' => array(self::BELONGS_TO, 'Category', 'parent_id'),
'childs' => array(self::HAS_MANY, 'Category', 'parent_id', 'order' => 'id ASC'),
);
}
public function getCategoryTree()
{
$subitems = array();
if($this->childs) foreach($this->childs as $child)
{
$subitems[] = $child->getListed();
}
$returnarray = array($this->id => $this->title);
if($subitems != array())
$returnarray = array_merge($returnarray, array('items' => $subitems));
return $returnarray;
}
そして私の見解では:
<?php
echo CHtml::dropDownList('category', 'id',
Category::model()->CategoryTree,
array('empty' => '(Select a category'));
?>
しかし、空のドロップダウンが表示されます。オプション グループを含むドロップダウン リストにこのツリービューを表示するにはどうすればよいですか? (オプション グループは親カテゴリで、オプションは sub_categories です。