【问题标题】:Dynamic menus from database in laravel using lavary/laravel-menu使用 lavary/laravel-menu 来自 laravel 数据库的动态菜单
【发布时间】:2019-02-09 11:39:40
【问题描述】:

我有一个带有静态菜单的 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);

如果我使用 dd() 打印出来,则调用 null $parent 上的成员函数 add() 不为 null 如果我执行 $menu-&gt;last()-&gt;add($item-&gt;title, $item-&gt;link); 之类的操作,它可以工作,但这不是我想要的...

【问题讨论】:

    标签: php laravel eloquent laravel-blade


    【解决方案1】:

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

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

    {{ $menu->whatDoYouNeedToAccess }}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-21
      • 2020-10-05
      • 2018-09-30
      • 2017-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      相关资源
      最近更新 更多