有2种型号
问题描述:
什么是动态创建使用 “SideNav窗口小部件” 和2款菜单正确的方式创建一个动态SideNav的Widget:有2种型号
类(ID,描述)
SUBCAT (ID,CATEGORY_ID,描述)
编辑
我有什么:
$item = [];
$Category = Category::find()->all();
foreach($Category as $model) {
$item[] = ['label' => $model->description, 'url' => '#'];
$Subcat = Subcat::find()->where("category_id=$model->id")->all();
foreach($Subcat as $model2) {
$item[] = ['label' => $model2->description, 'url' => '#'];
}
}
echo SideNav::widget([
'items' => $item,
,因为我想:
答
您正在寻找这样出头?
为sideName品尝简单的一个
$menuGiiItems[] = ['label' => Yii::t('app','Gii Generators'), 'icon' => 'th-list', 'url'=>Url::to(['/gii'])],
['label' => Yii::t('app','Generator 2'), 'url'=>Url::to(['/auth/item'])],
['label' => Yii::t('app','Generator 3'), 'url'=>Url::to(['auth/item-child'])],
['label' => Yii::t('app','Generator 4'), 'url'=>Url::to(['/auth/rule'])];
$type = SideNav::TYPE_PRIMARY;
$heading = '<i class="glyphicon glyphicon-education"></i> ' . Yii::t('app',' Gii - Development Automation ');
echo SideNav::widget([
'type' => $type,
'encodeLabels' => false,
'heading' => $heading,
'items' =>$menuGiiItems,
]);
或更复杂的一个嵌套项
$menuItems[] = ['label' => 'DFenX - Yii2 User - '. Yii::t('app','Authentication manager'), 'icon' => 'user', 'items' => [
['label' => '/user/admin/index', 'icon' => 'list', 'url'=>Url::to(['/user/admin/index'])],
['label' => '/user/1 (view)', 'icon' =>'eye-open', 'url'=>Url::to(['/user/1'])],
['label' => 'Settings', 'icon' => 'cog', 'items' => [
['label' => '/user/settings', 'icon' => 'cog', 'url'=>Url::to(['/user/settings'])],
['label' => '/user/settings/profile', 'url'=>Url::to(['/user/settings/profile'])],
['label' => '/user/settings/account', 'url'=>Url::to(['user/settings/account'])],
['label' => '/user/settings/networks', 'url'=>Url::to(['/user/settings/networks'])],
]],
['label' => 'Registration', 'icon' => 'user', 'items' => [
['label' => '/user/registration/register', 'icon' => 'user', 'url'=>Url::to(['/user/registration/register'])],
['label' => '/user/registration/resend', 'icon' => 'user', 'url'=>Url::to(['/user/registration/resend'])],
]],
['label' => 'Security', 'icon' => 'user', 'items' => [
['label' => '/user/security/login', 'icon' => 'user', 'url'=>Url::to(['/user/security/login'])],
['label' => '/user/security/logout', 'icon' => 'user', 'url'=>Url::to(['/user/security/logout'])],
]],
['label' => 'Recovery', 'icon' => 'user', 'items' => [
['label' => '/user/recovery/request', 'icon' => 'user', 'url'=>Url::to(['/user/recovery/request'])],
['label' => '/user/recovery/reset', 'icon' => 'user', 'url'=>Url::to(['/user/recovery/reset'])],
]],
]];
$type = SideNav::TYPE_PRIMARY;
$heading = '<i class="glyphicon glyphicon-tasks"></i> ' . Yii::t('app','AUTHENTICATION');
//$heading = ['label' => 'Books', 'icon' => 'book'] ;
echo SideNav::widget([
'type' => $type,
'encodeLabels' => false,
'heading' => $heading,
'items' =>$menuItems,
]);
答
$item = [];
$Category = Category::find()->all();
$count=0;
foreach($Category as $model) {
$item[] = ['label' => $model->description, 'url' => '#'];
$Subcat = Subcat::find()->where("category_id=$model->id")->all();
$cnt=0;
foreach($Subcat as $model2) {
$item[$count]['items'][$cnt] = ['label' => $model2->description, 'url' => '#'];
$cnt++;
}
$count++;
}
echo SideNav::widget([
'items' => $item,
)];
是的,但如何循环2模型? – gugoan
我已经更新答案.... – scaisEdge
我不明白... :(看我的EDIT2 – gugoan