public function compose() { foreach ($this->menu->all() as $menu) { $menuTree = $this->menuItem->getTreeForMenu($menu->id); Menu::create($menu->name, function (Builder $menu) use($menuTree) { foreach ($menuTree as $menuItem) { $this->addItemToMenu($menuItem, $menu); } }); } }
/** * Return a complete tree for the given menu id * * @param int $menuId * @return object */ public function getTreeForMenu($menuId) { return $this->cache->tags($this->entityName, 'global')->remember("{$this->locale}.{$this->entityName}.getTreeForMenu.{$menuId}", $this->cacheTime, function () use($menuId) { return $this->repository->getTreeForMenu($menuId); }); }