Я кодирую блог с помощью Symfony 5, и у меня возникают проблемы с получением идентификатора из URL-адреса для отображения комментариев из моей базы данных.
Подводя итог: - У меня есть представление "/ fiche / {id} "wi sh отображает конкретную c информацию об игре. - Люди могут оставлять комментарии ниже, комментарий помещается в базу данных с внешним ключом с именем "jeu_id" wi sh - это игра, в которой был опубликован комментарий.
- Цель состоит в том, чтобы отобразить сейчас все комментарии с sh были размещены на этой конкретной c игре. Я хочу отобразить все комментарии с внешним ключом «jeu_id», где sh находится в URL-адресе «/fiche/{id}".
. Вот метод в моем контроллере:
/**
* @Route("/fiche/{id}", name="fiche", methods={"POST", "GET"})
*/
public function fiche($id, Jeux $jeux, Request $request): Response
{
$id = (int)$request->get('id');
$commentaires = $this->getDoctrine()->getRepository(Jeux::class)->find($id);
$commentaire = new Commentaires();
$commentaire->setCreatedAt(new \DateTime("NOW"));
$request = Request::createFromGlobals();
$commentaire->setJeu($jeux);
$form = $this->createForm(CommentairesType::class, $commentaire);
$form->handleRequest($request);
//test variable
//dd($id);
dd($commentaire->getJeu($id));
if ($form->isSubmitted() && $form->isValid()) {
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($commentaire);
$entityManager->flush();
return $this->redirectToRoute('liste');
}
return $this->render('main/fiche.html.twig', [
'commentaires' => $commentaires,
'jeux' => $jeux,
'form' => $form->createView(),
]);
}
Вот важные переменные в сущности «Commentaires»:
/**
* @ORM\ManyToOne(targetEntity=Jeux::class, inversedBy="commentaires")
* @JoinColumn(name="jeu_id", referencedColumnName="id")
* @ORM\JoinColumn(nullable=true)
*/
private $jeu;
public function getJeu(): ?Jeux
{
return $this->jeu;
}
public function setJeu($jeu): self
{
$this->jeu = $jeu;
return $this;
}
Вот важные переменные в сущности «Jeux»:
/**
* @ORM\OneToMany(targetEntity=Commentaires::class, mappedBy="jeu", orphanRemoval=true)
*/
private $commentaires;
/**
* @return Collection|Commentaires[]
*/
public function getCommentaires(): Collection
{
return $this->commentaires;
}