{
$dql = "SELECT p as proof, SUM(s.vote) AS stat
FROM App:Proof p
LEFT JOIN App:Statistic s WITH p.id = s.proof
WHERE p.id = $proof_id";
$result = $em->createQuery($dql)->getOneOrNullResult();
$proof = $result['proof'];
if (!$proof) {
throw new NotFoundHttpException(self::PROOF_NO_FOUND);
}
if (!$proof->getIsPublic() && $proof->getUser() != $this->getUser()) {
throw new AccessDeniedException("Error access to proof $proof_id");
}
return $this->render('Logic/proof_view.html.twig', [
'proof' => $proof,
'vote_value' => $result['stat'] ?: 0,
]);
}
К слову кидать 404 при отсутствии записи в базе не оч решение. Роут то такой существует, можно какой no_content вернуть
отличное решение, тк поулчается, что конкретно такого роута нет для юзера
А потом фронт ругается что не удобно ошибки хендлить. А потом в кибане ворох 404 кодов не понятно то ли где то ссылки кривые отдаём, то ли ссзб
ну ресурса же нет
Это тебе ничем не помогает. И к слову, отрисовать пользователю "страница не найдена" можно и при 200 и при 204 коде
выбирайте сразу по юзеру, тогда даже параметр вам в контроллере не пригодится
Обсуждают сегодня