Afficher les commentaire

Par Alexandre Verbreugh, il y a 3 ans


Bonjour
depuis ma route episode/{slug} j'aimerais afficher les commentaire.

Le Controller

<?php namespace App\Controller; use App\Entity\Comment; use App\Entity\Episode; use App\Form\CommentType; use App\Repository\EpisodeRepository; use Doctrine\ORM\EntityManagerInterface; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; #[Route('/episode', name: 'episode_')] class EpisodeController extends AbstractController { #[Route('/', name: 'index')] public function index(EpisodeRepository $episodeRepository): Response { return $this->render('episode/index.html.twig', [ 'episode' => $episodeRepository->findBy([], ['id' => 'DESC']) ]); } #[Route('/{slug}', name:('detail'))] public function details (Episode $episode, Request $request, EntityManagerInterface $entityManager): Response { $comment = new Comment(); $commentForm = $this->createForm(CommentType::class, $comment); $commentForm->handleRequest($request); return $this->render('episode/detail.html.twig', [ 'commentForm' => $commentForm->createView() ]); } /* if($commentForm->isSubmitted() && $commentForm->isValid()){ $entityManager->persist($comment); $entityManager->flush(); $this->addFlash( 'success', "Le commentaire {$comment->getContent()} a bien été enregistrée" ); return $this->redirectToRoute('app_home'); } */ }Entourez votre code en utilisant "```" pour bien le mettre en forme. (ne copiez pas trop de code)

La vue:

{% extends 'base.html.twig' %} {% block body %} <main class="container"> <section class="row"> <div class="card m-5" style="width: 25rem;"> <img src="{{ episode.coverImage }}" class="card-img-top" alt="..."> <div class="card-body"> <h5 class="card-title">{{ episode.title }}</h5> <p class="card-text">{{ episode.introduction }}</p> <audio class:"" controls preload="none"> <source src="{{ episode.audio }}"> </audio> </div> </div> <div class="card m-5" style="width: 25rem;"> <h2>Liste des commentaires</h2> </div> * <div class="card m-5" style="width: 25rem;"> <h2>Ajouter un commentaire</h2> {{ form(commentForm) }} </div> </section> <section class="container"> </section> </main> {% endblock %}

Message erreur :

Object of class App\Entity\Episode could not be converted to string

2 réponses

gillesr, il y a 3 ans

Bonjour,
Dans ton contrôleur, l faut passer $episode à ta vue, ensuite tu pourras boucler sur episode . comments (en partant du principe que ton entité Episode possède une propriété comments qui fait la liaison.)

Akli Ouamara, il y a 3 ans

il faut rajouter la fonction toString
mais je ne voie pas de requete qui recupere les comments