В маршрутах/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();
}
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