Динамические меню из базы данных в laravel с использованием lavary / laravel-menu - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть приложение laravel со статическим меню. Теперь я хочу изменить это в динамические меню из базы данных. Пока все хорошо, поэтому я сделал миграцию для таблицы с именем menu_items.

Затем я написал промежуточное программное обеспечение со следующим методом дескриптора:

public function handle($request, Closure $next)
{
    \Menu::make('mainmenu', function ($menu) {

        $items = MenuItem::all();

        foreach ($items as $item) {

            if ($item->parent_id == null) {

                $menu->add($item->title, $item->link)
                    ->prepend('<i class="'.$item->icon.'"></i>');    
            }
            else {
                // dd($menu);
                $parent = $item->parent_id - 1;
                $menu->find($parent)->add($item->title, $item->link);
            }
        }

    return $next($request);
}

Я перешел на lavary / laravel-menu и пытаюсь динамически добавить подменю в родительский пункт меню. Я не понимаю, почему Laravel всегда говорит мне на

$menu->find($parent)->add($item->title, $item->link);

Вызов функции-члена add () для null $ parent не равен null, если я распечатываю с помощью dd () Если я делаю что-то вроде $menu->last()->add($item->title, $item->link); Это работает, но это не то, что я хочу ...

1 Ответ

0 голосов
/ 04 сентября 2018

Возможно, вам нужно написать функцию в вашем контроллере и вернуть переменную в шаблон? Как вы получите доступ к {{Menu :: main ()}}?

$menu = Menu::build($menu_items, function ($menu, $menu_item) {
        $menu->link($menu_item->title, $menu_item->link);

{{$ menu-> whatDoYouNeedToAccess}}

...