/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { session()->forget('active_menu'); if (!$request->is('administrator*')) { $this->repository = app(Repository::class); $this->repository->getPublished()->each(function (Navigation $navigation) { MenuFactory::make($navigation->type, function (Builder $builder) use($navigation) { $navigation->menus->each(function (Menu $menu) use($builder, &$assignment) { $this->generateMenu($builder, $menu); }); }); }); } return $next($request); }
/** * Get all published navigation. * * @return \Illuminate\Database\Eloquent\Collection|static[] */ public function getPublished() { return $this->cache->rememberForever('navigation.published', function () { return $this->repository->getPublished(); }); }