Yii2 创建具有2个模型的动态SideNav小部件
使用“SideNav小部件”和2种型号动态创建菜单的正确方法是什么: 类别(id,说明) 子类别(id、类别\u id、说明) 编辑 我所拥有的:Yii2 创建具有2个模型的动态SideNav小部件,yii2,Yii2,使用“SideNav小部件”和2种型号动态创建菜单的正确方法是什么: 类别(id,说明) 子类别(id、类别\u id、说明) 编辑 我所拥有的: $item = []; $Category = Category::find()->all(); foreach($Category as $model) { $item[] = ['label' => $model->description, 'url' => '#'];
$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,
]);
$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=''。Yii::t('app','Gii-开发自动化');
echo SideNav::小部件([
'type'=>$type,
“encodeLabels”=>false,
“标题”=>$heading,
“项目”=>$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,
]);
$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(视图)','icon'=>'eye-open','url'=>url::to(['/user/1']),
[“标签”=>“设置”,“图标”=>“重心”,“项目”=>[
['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'=>'/user/registration/register','icon'=>'user','url'=>url::to(['/user/registration/register']),
['label'=>'/user/registration/ressend','icon'=>'user','url'=>url::to(['/user/registration/ressend']),
]],
[“标签”=>“安全性”,“图标”=>“用户”,“项目”=>[
['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'=>'/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=''。Yii::t('app','AUTHENTICATION');
//$heading=['label'=>'Books','icon'=>'book'];
echo SideNav::小部件([
'type'=>$type,
“encodeLabels”=>false,
“标题”=>$heading,
'items'=>$menuItems,
]);
嗯,最后我决定使用扩展名“”。满足了我的需要。
谢谢是的,但是如何循环这两种型号?我不明白…:(看我的编辑2我要用一个更复杂的菜单更新答案,其中包含嵌套项和子级别。我需要一个动态菜单。这是一个静态菜单,意味着dinamic。服务器端您可以生成DINAMICALL等效代码…
$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,
)];