[英]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.