/** * @param bool $asArray Represent menu items as arrays if true * @return array Returns all menu as array */ public function menu($asArray = false) { $navs = Navigation::whereNull('parent_id')->orderBy('sort_order', 'ASC')->get(); $result = []; foreach ($navs as $nav) { if ($asArray) { $_nav = $nav->toArray(); $_nav['name'] = $nav->name; $result[] = ['item' => $_nav, 'children' => $this->getChildren($nav, $asArray)]; } else { $result[] = ['item' => $nav, 'children' => $this->getChildren($nav, $asArray)]; } } return $result; }