【发布时间】: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->last()->add($item->title, $item->link); 之类的操作,它可以工作,但这不是我想要的...
【问题讨论】:
标签: php laravel eloquent laravel-blade