Я хочу динамически отображать пункты меню из базы данных, а также статично в моем интерфейсе yii2

Я просто хочу отображать меню из базы данных в расширенном шаблонном интерфейсе yii2. Также у меня есть статические меню. Я использую виджет меню

Вот мой код

           <?php
              echo Menu::widget([
                'options' => ['class' => 'about_content'],
                'items' => CMS::getCMSPages(),
              ]);
            ?>

Здесь CMS::getCMSPages() будет получать меню из базы данных. А также у меня есть статическое меню. Поэтому я добавил в виджет меню, как это

           <?php
              echo Menu::widget([
                'options' => ['class' => 'about_content'],
                'items' => [[CMS::getCMSPages()],
                     ['label' => 'contact', 'url' => ['site/index']]
                 ]

              ]);
            ?>

Но это не работает. Кто-нибудь, помогите мне, ребята

1 ответ

Решение

CMS::getCMSPages() Метод должен возвращать правильно подготовленный массив элементов. Что-то вроде этого:

[
    ['label' => 'Home', 'url' => ['site/index']],
    ['label' => 'Products', 'url' => ['product/index'],
]

Также вам следует объединить массив элементов:

<?php
  echo Menu::widget([
    'options' => ['class' => 'about_content'],
    'items' => array_merge(CMS::getCMSPages(), [['label' => 'contact', 'url' => ['site/index']]])
  ]);
?>
Другие вопросы по тегам