kalnoy/illuminate-menu

A menu builder for Laravel using Bootstrap's markup.

Maintainers

👁 lazychaser

Package info

github.com/lazychaser/illuminate-menu

pkg:composer/kalnoy/illuminate-menu

Statistics

Installs: 14 559

Dependents: 1

Suggesters: 0

Stars: 24

Open Issues: 0

v1.3.5 2019-10-18 14:10 UTC

Requires

  • php: >=5.4.0

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT f5bca98293773c42859046b62ac4560ff14a4f05

  • Alexander Kalnoy <lazychaser.woop@gmail.com>

menubootstraplaravel

This package is auto-updated.

Last update: 2026-06-19 04:44:20 UTC


README

A menu builder for Laravel 4-5 using Bootstrap's markup.

👁 Build Status
👁 Latest Stable Version
👁 Total Downloads

Документация на Русском

Note that this package is shipped with no styles nor scripts, you have to download them manually from Twitter Bootstrap's site.

Installation

Install using Composer:

composer require kalnoy/illuminate-menu:~1.0

Add a service provider:

'providers' => [
 'Illuminate\Html\MenuServiceProvider',
],

And a facade:

'aliases' => [
 'Menu' => 'Illuminate\Support\Facades\Menu',
],

Documentation

Rendering a menu:

{!! Menu::render($items, $attributes) !!}

Where $attributes is optional array of html attributes for ul element.

Rendering a list of menu items:

<ul>{!! Menu::items($items) !!}</ul>

Rendering a single menu item:

{!! Menu::item($label, $url) !!}
{!! Menu::item($label, $options) !!}
{!! Menu::item($options) !!}

See a list of available options below.

Basic example:

Menu::render([
 'Link to url' => 'bar',
 'Link to external url' => 'http://bar',
 [ 'label' => 'Link to url', 'url' => 'bar' ],
 'Link to route' => [ 'route' => [ 'route.name', 'foo' => 'bar' ] ],
]);

Rendering an item with a drop down menu:

{!! Menu::item([
 'label' => 'Settings',
 'icon' => 'wrench',
 'items' => [
 'Foo' => 'bar',
 '-', // divider
 'Logout' => [ 'route' => 'logout_path' ],
 ],
]) !!}

Controlling whether the item is visible:

{!! Menu::item([
 'label' => 'Foo',
 'url' => 'bar',
 'visible' => function () { return Config::get('app.debug'); },
] !!}

Item options

You can specify an array of following options:

  • label is a label of the item, automatically translated, so you can specify lang string id
  • url is the url which can be a full URI or local path
  • route to specify a route, possibly with parameters
  • secure; specify true to make url be secure (doesn't affect route option)
  • items is an array of items for drop down menu
  • linkOptions is an array of additional link attributes

Changing the state of the item:

  • visible is a boolean value or closure to specify whether the item is visible
  • active is a boolean value or closure to specify whether to add active class to item; if not specified, determined automatically based on current url
  • disabled is a boolean value or closure to specify whether the menu item is disabled

Presentation options:

  • icon is a glyphicon id, i.e. pencil
  • badge is a value for badge (scalar or closure)
  • and any other parameter that will be rendered as an attribute for <li> element.

Customization

Though this menu builder intended to be used together with bootstrap markup, you can customize it however you like by extending Illuminate\Html\MenuBuilder class and overriding base methods.