Билдер меню для Laravel 4-5 под разметку Bootstrap.
Обратите внимание, что расширение поставляется без каких либо стилей и скриптов, их нужно отдельно установить с сайта Twitter Bootstrap, или сделать своё оформление на основе правил, которые задает это фреймфорк.
Установка с помощью Composer:
composer require kalnoy/illuminate-menu:~1.0
Добавте провайдер:
'providers' => [
'Illuminate\Html\MenuServiceProvider',
],
И фасад для быстрого доступа:
'aliases' => [
'Menu' => 'Illuminate\Support\Facades\Menu',
],
Вывод меню:
{!! Menu::render($items, $attributes) !!}
Где $attributes
необязательный параметр с атрибутами для тэга ul
.
Вывод только элементов меню без внешнего тэга:
<ul>{!! Menu::items($items) !!}</ul>
Вывод одного элемента меню:
{!! Menu::item($label, $url) !!}
{!! Menu::item($label, $options) !!}
{!! Menu::item($options) !!}
Список доступных опций доступен ниже.
Простой пример:
Menu::render([
'Локальная ссылка' => 'bar',
'Внешняя ссылка' => 'http://bar',
[ 'label' => 'Локальная ссылка', 'url' => 'bar' ],
'Ссылка на роут' => [ 'route' => [ 'route.name', 'foo' => 'bar' ] ],
]);
Вывод элемента меню с выпадающим списком:
{!! Menu::item([
'label' => 'Настройки',
'icon' => 'wrench',
'items' => [
'Foo' => 'bar',
'-', // разделитель
'Выйти' => [ 'route' => 'logout_path' ],
],
]) !!}
Управление видимостью элемента:
{!! Menu::item([
'label' => 'Foo',
'url' => 'bar',
'visible' => function () { return Config::get('app.debug'); },
] !!}
Вы можете использовать следующий список опций:
label
заголовок элемента меню; автоматически переводится, т.е. можно указать идентификатор строкиurl
ссылка на локальный или внешний адресroute
чтобы указать роут с параметрами или безsecure
; укажитеtrue
чтобы сделать локальную ссылку безопасной (https) (влияет только на опциюurl
)items
список элементов в выпадающем менюlinkOptions
массив дополнительных атрибутов ссылки
Изменение состояния элемента:
visible
булевское значение или closure для указания видимости элементаactive
булевское значение или closure; если значениеtrue
, то элементу добавляется классactive
disabled
булевское значение или closure; еслиtrue
, то элементу добавляется классdisabled
и он становится некликабельным
Опции представления:
icon
идентификатор иконки glyphicon, напримерpencil
badge
значение для метки (скалярное или closure)- любой другой параметр, который будет считаться как атрибут для элемента
<li>
.