Examples¶
Full code sample¶
Here is a full menu example.
$leftMenu = \Menu::getMenu('leftMenu');
$rightMenu = \Menu::getMenu('rightMenu');
// Home
$leftMenu->link('home', function (Link $link) {
$link->name = 'Home';
$link->url = route('home');
});
if (\Auth::guest()) {
$rightMenu->link('login', function (Link $link) {
$link->name = 'Login';
$link->url = route('login');
});
$rightMenu->link('register', function (Link $link) {
$link->name = 'Register';
$link->url = route('register');
});
} else {
\Auth::user()->updateLastActive();
if (\Auth::user()->is('ADMIN')) {
$rightMenu->dropDown('admin', 'Admin', function (DropDown $dropDown) {
$dropDown->link('dashboard', function (Link $link) {
$link->name = 'Dashboard';
$link->url = route('admin.index');
});
});
}
$rightMenu->dropDown('user', \Auth::user()->username, function (DropDown $dropDown) {
$dropDown->link('profile.edit', function (Link $link) {
$link->name = 'Edit your profile';
$link->url = 'user/profile/';
});
$dropDown->link('logout', function (Link $link) {
$link->name = 'Logout';
$link->url = route('logout');
});
});
$rightMenu->link('profile.view', function (Link $link) {
$link->name = 'Public profile';
$link->url = 'user/view/' . \Auth::user()->id;
$link->insertAfter('profile.edit');
});
}
Output¶
NukaCode\Menu\Menu Object
(
[name] => right_menu
[links] => Illuminate\Support\Collection Object
(
[items:protected] => Array
(
[0] => NukaCode\Menu\Link Object
(
[menu] => NukaCode\Menu\Menu Object
*RECURSION*
[slug] => login
[name] => Login
[url] => http://localhost:5565/login
[options] => Array
(
)
[insert] =>
[active] =>
)
[1] => NukaCode\Menu\Link Object
(
[menu] => NukaCode\Menu\Menu Object
*RECURSION*
[slug] => register
[name] => Register
[url] => http://localhost:5565/register
[options] => Array
(
)
[insert] =>
[active] =>
)
)
)
[insert] =>
)
NukaCode\Menu\Menu Object
(
[name] => left_menu
[links] => Illuminate\Support\Collection Object
(
[items:protected] => Array
(
[0] => NukaCode\Menu\Link Object
(
[menu] => NukaCode\Menu\Menu Object
*RECURSION*
[slug] => home
[name] => Home
[url] => http://localhost:5565
[options] => Array
(
)
[insert] =>
[active] =>
)
)
)
[insert] =>
)