Задать вопрос

Почему возникает ошибка 404 при быстрой перезагрузке страницы laravel?

Вот код контроллера api роута
$game = Game::with('users')->findOrFail($request->input('gid'));
        $p1 = $game->users()->where('pnum', 1)->first();
        $p2 = $game->users()->where('pnum', 2)->first();
        if($p1 && $p2)
            return response()->json([
                'p1' => $p1->id,
                'p2' => $p2->id,
                'status' => $game->status,
            ]);
        else
            return abort(404);

В модели Game определено
public function users()
    {
        return $this->belongsToMany('App\User');
    }

Таблица соединения имеет доп. параметр $table->integer('pnum');
Проблема в том, что если я быстро нажимаю два раза F5(для перезагрузки), страница выдает 404, если просто перехожу на страницу, выдает нормальный ответ. Как с этим бороться?
  • Вопрос задан
  • 363 просмотра
Подписаться 3 Сложный Комментировать
Решения вопроса 1
@iAdil
Дело скорее всего в конфигах
Закешируй конфиг и роуты:
php artisan config:cache
php artisan routes:cache
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@LaraLover
У вас SPA? Какой-нибудь vue router? Получается если вы переходите по страницы- у вас отрабатывает роутер фронта, если просто заходить по такому урок/обновлять страницы- то отрабатывает роутер ларавела, а такой страницы у него нет. Т.е. если используете какой-то роутер фронтенда, вам надо настроить сервер так, чтобы все страницы отправлялись на главную, а ее уже обрабатывал фронт.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы