Ejemplo n.º 1
0
 /**
  * @param PageRepository $pages
  * @param ModuleRoute $route
  * @param AccountManager $manager
  * @return mixed
  */
 public function index(PageRepository $pages, ModuleRoute $route, AccountManager $manager)
 {
     $menus = $this->menu->getMenus();
     $validRoutes = $manager->account()->modules->routes();
     $validRoutes = $validRoutes->lists('id')->toArray();
     foreach ($menus as $menu) {
         $usedPages = new Collection();
         $usedRoutes = new Collection();
         foreach ($menu->items as $item) {
             if ($item->page) {
                 $usedPages->push($item->page);
             }
             if ($item->route) {
                 $usedRoutes->push($item->route);
             }
         }
         $menu->availablePages = $pages->with('translations')->mainPages()->but($usedPages)->get();
         $menu->availableRoutes = $route->with('translations')->whereIn('id', $validRoutes)->but($usedRoutes)->get();
     }
     return $menus;
 }