gpt4 book ai didi

yii-extensions - 如何在 Yii2 中的 $content 之前在主布局页面中传递全局变量

转载 作者:行者123 更新时间:2023-12-03 22:42:37 25 4
gpt4 key购买 nike

我正在尝试使用“Nav::widget”在 yii2 中创建动态菜单。这是我在主布局页面的菜单部分中的代码:

    echo Nav::widget([
'options' => ['class' => 'navbar-nav navbar-right'],
'items' => [
['label' => 'Home', 'url' => ['/site/index']],
['label' => 'About', 'url' => ['/site/about']],

试图获得解决方案:请看一下::

1 我在应用程序中创建了一个 super Controller “components/Controller.php”:

namespace app\components;
use app\models\MenuPanal;

class Controller extends \yii\web\Controller
{

public $menuItems = [];

public function init(){

$items = MenuPanal::find()
->orderBy('id')
->all();

$menuItems = [];
foreach ($items as $key => $value) {
$this->menuItems[] = ['label' => $value['c_type'] , 'url' => ['#']];
}

parent::init();
}
}

2 放置在主布局页面中::

   echo Nav::widget([
'options' => ['class' => 'navbar-nav navbar-right'],

'items' => Yii::$app->controller->menuItems,

]);

非常感谢您的帮助。

最佳答案

例如,您可以创建自己的 super Controller 并添加一个 menuItems 属性:

namespace app\components;

class Controller extends \yii\web\Controller
{
public $menuItems = [
['label' => 'Home', 'url' => ['/site/index']],
['label' => 'About', 'url' => ['/site/about']]
];
}

你的 Controller 应该扩展它:

namespace app\controllers;

use app\components\Controller;

class MyController extends Controller {...}

在你的布局中:

echo Nav::widget([
'options' => ['class' => 'navbar-nav navbar-right'],
'items' => Yii::$app->controller->menuItems,
]);

关于yii-extensions - 如何在 Yii2 中的 $content 之前在主布局页面中传递全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23987416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com