Menu::widget
Menu::widget
Есть таблица books: id, name
Задача при добавлении новой записи в таблицу отображать новый пункт меню где label это name из таблицы, а url это id - controller/action?id
Вопрос, как реализовать вывод всех пунктов меню из таблицы books.
Задача при добавлении новой записи в таблицу отображать новый пункт меню где label это name из таблицы, а url это id - controller/action?id
Вопрос, как реализовать вывод всех пунктов меню из таблицы books.
Re: Menu::widget
Циклом по Book::find()->orderBy('name')->all().
Re: Menu::widget
Как будет выглядеть цикл, формирующий переменную с множеством массивов типа:
Код: Выделить всё
['label' => 'book_1', 'icon' => 'circle-o', 'url' => 'book/edit?id=1',],
['label' => 'book_2', 'icon' => 'circle-o', 'url' => 'book/edit?id=2',],
Re: Menu::widget
Обычный foreach с:
или array_map.
Код: Выделить всё
$items[] = ['label' => $book->name, 'url' => ['/book/view', 'id' => $book->id]];
Re: Menu::widget
ElisDN писал(а): ↑2019.05.04, 16:31 Обычный foreach с:
или array_map.Код: Выделить всё
$items[] = ['label' => $book->name, 'url' => ['/book/view', 'id' => $book->id]];
Код: Выделить всё
$book= Book::find()->all();
foreach ($book as $m) {
$menuItems[] = ['label' => $m->name, 'url' => ['/book/view', 'id' => $m->id]];
}
выводится только одна запись
Последний раз редактировалось evnazar4 2019.05.04, 16:54, всего редактировалось 1 раз.
Re: Menu::widget
Код Menu::widget
Код: Выделить всё
'label' => 'Книги',
'icon' => 'circle-o',
'url' => '#',
'items' => [
$menuItems[''],
['label' => 'Добавить', 'icon' => 'circle-o', 'url' => ['book/add'],],
],
Re: Menu::widget
Код: Выделить всё
'items' => ArrayHelper::merge($menuItems, [
['label' => 'Добавить', 'icon' => 'circle-o', 'url' => ['book/add'],],
]),
Re: Menu::widget
Спасибо, помогло.