App\Entity\Article object not found by the @ParamConverter annotation.

Default
,

Bonjour,

Voila je rencontre un petit problème avec mon code.
je cherche a etre redirigé après avoir modifier le commentaire mais j'ai l'erreur App\Entity\Article object not found by the @paramconverter annotation avez vous une petite idée du problème ?

 /**
     * @Route("/{id}/modifier", name="comment_edit", methods={"GET","POST"}, requirements={"id" = "\d+"})
     * @param Request $request
     * @param Article $article
     * @param Comment $comment
     * @param LinkRepository $linkRepository
     * @param MoreRepository $moreRepository
     * @return Response
     */
    public function editComment(Request $request,Article $article, Comment $comment,LinkRepository $linkRepository,MoreRepository $moreRepository): Response
    {
        $form = $this->createForm(CommentType::class, $comment);
        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            $this->getDoctrine()->getManager()->flush();
            return $this->redirectToRoute('article_details',['id' => $article->getId()]);
        }

1 Réponse

Default
,

salut,

ton problème vient du fait que le paramconverter basé sur l'ID de ta route sait convertir l'id pour obtenir le commentaire mais pas l'article, ce qui est normal vue que tu donnes qu'un seul ID dans la route. Dans ton cas j'imagine que tu as une relation entre Comment et Article du coup j'enléverrais l'argument Article $article et dans le code :

return $this->redirectToRoute('article_details',['id' => $comment->getArticle()]);

Sinon tu peux avoir Symfony qui converti automatiquement deux ID qui sont dans la route mais tu dois toi même spécifé le paramconverter

/**
 * @Route("/blog/{date}/{slug}/comments/{comment_slug}")
 * @ParamConverter("post", options={"mapping": {"date": "date", "slug": "slug"}})
 * @ParamConverter("comment", options={"mapping": {"comment_slug": "slug"}})
 */
public function showComment(Post $post, Comment $comment)
{
}

Mais je ne pense pas que s'est que tu souhaites avoir...

https://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/converters.html