示例#1
0
 /**
  * Просмотр ссылок меню, а также их добавление и удаление.
  * @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));
     }
 }