public function appProject($lang, $slug) { $project = Dic::valueBySlugs('projects', $slug, ['fields', 'textfields']); #Helper::tad($project); if (!$project) { App::abort(404); } $project = DicLib::loadImages($project, ['image']); $project_page = Page::by_id($project->page_id); #Helper::tad($project_page); if (!$project_page) { App::abort(404); } $prev_project = null; $next_project = null; $prev_project = Dic::valuesBySlug('projects', function ($query) use($project) { $query->where('lft', '<', $project->lft); $query->orderBy('lft', 'ASC'); $query->take(1); }, ['fields', 'textfields'], true, true, true); #Helper::ta($prev_project); $next_project = Dic::valuesBySlug('projects', function ($query) use($project) { $query->where('lft', '>', $project->lft); $query->orderBy('lft', 'ASC'); $query->take(1); }, ['fields', 'textfields'], true, true, true); #Helper::tad($next_project); return View::make(Helper::layout('project'), compact('project', 'project_page', 'prev_project', 'next_project')); }
private function getCity($args) { $city = $city_slug = null; #dd($args); $direct_route = false; $route = Route::current(); if (is_object($route)) { $route_name = $route->getName(); if (strpos($route_name, '_direct')) { $direct_route = true; } } #dd($direct_route); if (count($args) == 2) { $city_slug = $args[0]; } elseif (count($args) == 1 || count($args) == 0) { /** * Вот тут костылек: первым параметром может являться как slug города, так и id сущности. * В зависимости от того, генерится ли ссылка на сущность в дефолтном городе или нет. * Выход - именовать все прямые роуты (с явным указанием города) по маске: *_direct. * И проверять текущий роут - прямой он или нет. */ if ($direct_route) { $city_slug = $args[0]; } else { $city = Session::get(self::$user_city_cache_key); #Helper::tad($city); $city_slug = $city->slug; } } if (is_object($city)) { return $city; } #dd($city_slug); if ($city_slug) { $city = Dic::valueBySlugs('city', $city_slug, ['fields']); } #Helper::tad($city); return $city; }