Skip to content
Menu package for Laravel, build it/extend it with classes, and render it how you want to from a collection/array/json or to bootstrap markup
PHP HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config
resources/views
src
tests
.gitignore
.travis.yml
CHANGELOG.md
LICENSE
README.md
composer.json
composer.lock
phpunit.xml

README.md

Stable Build Build Status StyleCI

Laralabs Menu

Simple, extendable menu package for Laravel.

You define how it renders, the package just gives you the data to do it with.

  • Attach to a blade file via a view composer.
  • Pass data into a Vue component, or do whatever you want with it!

🚀 Quick Start

Installation

Require the package in the composer.json of your project.

composer require laralabs/menu

Publish the configuration file.

php artisan vendor:publish --tag=laralabs-menu-config

Not much in the configuration file at the moment, but you can choose to register your menus in here if you wish.

Usage

Add the ResolveMenus middleware to your app/Http/Kernel.php in the $middleware array:

    protected $middleware = [
        // Existing Middleware
        \Laralabs\Menu\Middleware\ResolveMenus::class,
    ];

Currently there are no make commands, but there are example menus found in the tests/Fakes directory.

Build a class that extends Laralabs\Menu\Contracts\Menu and implement the required methods.

Extenders can be built by creating a class that extends implements Laralabs\Menu\Contracts\MenuExtender, edit the menu and then return then return it out of the handle method with the closure $next($menu).

Quick example of creating a menu in the build() method:

    public function build(): void
    {
        $this->menu->group('groupOne', static function (Group $group) {
            $group->item('Group One, Item One', function (Item $item) {
                $item->subItem('Sub Item');
            });
        });
    }

📙 Documentation

Documentation TBC, take a look at the tests :)

💬 Support

Please raise an issue on GitHub if there is a problem.

🔑 License

This is open-sourced software licensed under the MIT License.

🙏 Credits

Adapted from Maatwebsite/Laravel-Sidebar for my own requirements, thank you to everyone at Maatwebsite for the work they do. Also, theirs might have a feature mine doesn't so go check it out too!

You can’t perform that action at this time.