/** * Просмотр ссылок меню, а также их добавление и удаление. * @param $id * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function getView($id) { //Получаем из БД список ссылок для выбранного меню $links = Menu::find($id)->links()->orderBy('pivot_sort')->get(); //Получаем незадействованные в данном меню ссылки $newLinks = Links::whereNotIn('id', $links->lists('id'))->get(); //Если ссылок нет if (!$links->count()) { return view('admin::admin.menu.view', array('tree' => $this->tree, 'id' => $id, 'newLinks' => $newLinks)); } else { //Сортируем по родителю foreach ($links->toArray() as $item) { $this->linksArray[$item['parent_id']][] = $item; } //Сортируем массив foreach ($this->linksArray[self::$cnt] as $item) { $this->tree[self::$cnt]['id'] = $item['id']; $this->tree[self::$cnt]['span'] = "<span class=\"badge\">"; $this->tree[self::$cnt]['link_name'] = $item['link_name']; $this->tree[self::$cnt]['link_url'] = $item['link_url']; $this->tree[self::$cnt]['pivot_id'] = $item['pivot']['id']; $this->tree[self::$cnt]['pivot_sort'] = $item['pivot']['sort']; //Увеличиваем значение счетчика self::$cnt++; //Есть ли у ссылки дети if (array_key_exists($item['id'], $this->linksArray)) { $this->createTree($item); } } return view('admin::admin.menu.view', array('tree' => $this->tree, 'id' => $id, 'newLinks' => $newLinks)); } }