繁体   English   中英

使用lavary / laravel-menu从laravel中的数据库动态菜单

[英]Dynamic menus from database in laravel using lavary/laravel-menu

我有一个带有静态菜单的laravel应用程序。 现在,我想将其更改为数据库中的动态菜单。 到目前为止,一切都很好,我迁移了一个名为menu_items的表。

然后,我编写了一个具有以下handle方法的中间件:

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并尝试将子菜单动态添加到父菜单项。 我不明白为什么拉拉维尔总是告诉我

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

如果使用dd()打印,则对null上的成员函数add()的调用不为null如果我执行$menu->last()->add($item->title, $item->link); 它有效,但这不是我想要的...

可能您必须在控制器中编写函数,然后将变量返回模板? 您将如何访问{{Menu :: main()}}?

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

{{$ menu-> whatDoYouNeedToAccess}}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM