Приложение Laravel закрывает сокет прослушивания после отправки одного запроса на получение jsonPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Приложение Laravel закрывает сокет прослушивания после отправки одного запроса на получение json

Сообщение Anonymous »

В моем приложении Laravel 11 у меня есть маршрут, который возвращает объект json, который используется для обновления визуального элемента на странице без необходимости перезагрузки всей страницы. Но я не знаю, почему мое приложение Laravel умирает, когда я отправляю этот запрос. Код маршрута:
В маршрутах/web.php:

Код: Выделить всё

Route::middleware([xFrameOptionsHeader::class,VerifyHeaders::class])->group(function(){
Route::get('/post/{siglaBoard}/{postId}', [PostController::class, 'single'])
->where('siglaBoard', '[a-zA-Zç]{1,10}')
->where('postId', '[0-9]+')
->name('post.single');
});
В контроллере:

Код: Выделить всё

private static function pegaPostsBoard($siglaBoard){
$chave = 'posts_board_' . $siglaBoard;
if(Cache::has($chave))
return Cache::get($chave);

$posts = Post::with(['arquivos', 'ytanexos', 'anao', 'ban', 'board'])
->where('board', $siglaBoard)->get(['id','conteudo','assunto','modpost','sage','pinado','trancado','created_at']);
Cache::forever($chave, $posts);
return $posts;

}

public function single($siglaBoard, $postId){
$postsThread = PostController::pegaPostsBoard(strip_tags(Purifier::clean($siglaBoard)));
$postId = strip_tags(Purifier::clean($postId));
return $postsThread->where('id', '=', $postId)->first()->toJson();
}
Я запускаю сервер локально с помощью PHP Artisan Serve, что делает его доступным через 127.0.0.1 порт 8000. Когда я отправляю запрос GET http://127.0.0.1:8000/post/a/1 (где я знаю, что одна строка будет возвращена из базы данных с этими параметрами) в браузере он получает NS_ERROR_CONNECTION_REFUSED . В выводе PHP Artisan Serve ничего не отображается. В хранилище/logs/laravel.log ничего не регистрируется. После того, как я отправил этот конкретный запрос, команда artisan submit все еще работает, но все остальные запросы получают ту же ошибку соединения. Я также попробовал запустить artisancache:clear, думая, что, возможно, в кеше есть какая-то ошибка, но ошибки остаются. Все остальные маршруты в группе промежуточного программного обеспечения, где находится этот маршрут, работают нормально, поэтому я также не думаю, что это проблема в промежуточном программном обеспечении.
EDIT Проведя дополнительные тесты, я обнаружил, что laravel закрывает соединение по адресу 127.0.0.1:8000 и повторно открывает порт 8001. Если я отправлю этот конкретный GET еще раз, он закроет TCP снова прослушивает сокет и снова открывает его на 8002 и так далее. Я также попробовал начать все сначала, например удалить каталог поставщика и снова запустить установку композитора, перезапустить все миграции с нуля, удалить все кеши из папки хранилища... ничего не работает.
РЕДАКТИРОВАТЬ 2
Я обнаружил, что когда я использую только ->get() вместо ->get(['id','conteudo','assunto','modpost','sage','pinado','trancado','created_at']) проблема не возникает, но я не понимаю почему.

Подробнее здесь: https://stackoverflow.com/questions/792 ... on-request
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»