маршрут или кеш в проекте Laravel

У меня есть проект Laravel 5.4. Существует проблема маршрута, которую я не могу решить на второй день.
У меня есть два маршрута, как:

Route::get('/', 'HomeController@index')->name('index');

public function index(CookieJar $cookieJar, Request $request)
{
// Берем город из куков
$city_from_cookie = Cookie::get('city');
// Если города нет в куках
if (!$city_from_cookie) {
$client = new Client();
$ip = $request->ip() == '127.0.0.1' ? '95.85.70.7' : $request->ip();
$json = $client->request('GET', 'http://freegeoip.net/json/' . $ip . '');
$city = json_decode($json->getBody()->getContents());

if ($city->city === null) {
$cookie = cookie('city', config('custom.city.default_slug'), 21600, null, null, false, true);
$cookieJar->queue($cookie);
$city = config('custom.city.default_slug');
} else {
$city = strtolower($city->city);

try {
$city = City::findBySlugOrFail($city);
$city = $city->slug;
} catch (ModelNotFoundException $ex) {
$city = 'moskva';
}

$cookie = cookie('city', $city, 21600, null, null, false, false);
$cookieJar->queue($cookie);
}

} else {
$city = $city_from_cookie;
}

return redirect(route('city', [$city]), 301);
}

А ТАКЖЕ

Route::get('{city}', 'HomeController@getCityCategories')->name('city');

public function getCityCategories(City $city, CookieJar $cookieJar)
{
//        Cache::flush();
//        dd(request()->getRequestUri());
$cookie = cookie('city', $city->slug, 21600, null, null, false, false);
$cookieJar->queue($cookie);

$categories = Category::whereNull('parent_id')->with('subcategories')->get();

if ($city->weather_id) {
$weather = $this->getWeather($city->weather_id);
} else {
$weather = [
'city' => '',
'temp_min' => '',
'temp_max' => '',
'day' => '',
'symbol' => '',
'symbol_desc' => ''
];
}

return view('pages.categories', compact('categories', 'city', 'weather'));
}

Проблема в том, что если вы перейдете к корневому методу ‘/’, первый раз метод выполнит свою работу, но когда вы получите такой город, как / moskva, и если вы смените свой город на другой, например / abakan, а затем перейдете к корню ‘/ «Вы будете перенаправлены на / москва. Я перепробовал почти все, отключил кэширование, очистил кеш командами кустарного промысла, но это не помогло. Вот домен для тестирования этой проблемы: okololo.ru

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector