Bonsoir a tous

je tente de développer une fonction qui dois permettre à un user d'afficher les détails d'un de ses tickets d'incident avec diverses informations, ses commentaires ( échanges entre clients et technicien) et des documents ou images uploader par les clients (ou technicien)

ma fonction est très confuse car elle doit recuperer beaucoup de données.et bien qu'elle se termine par un return $this->render(...twig) (objet httpResponse ?); symfony m'affiche le message d'erreur suivant :


Nom : Capture d’écran 2021-01-15 214100.png
Affichages : 85
Taille : 16,4 Ko


Voici mon controller:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
 
 
<?php
 
namespace App\Controller;
 
 
use App\Entity\Comment;
use App\Entity\Document;
use App\Entity\Etat;
use App\Entity\Ticket;
use App\Form\CommentType;
use App\Form\TicketType;
use DateTime;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\User\UserInterface;
 
 
class TicketController extends AbstractController
{
 
/* d'autre méthodes...*/
 
 
 
    /**
     * @Route("/voir_detail/{id}", name="ticket_detail",
     *     requirements={"id": "\d+"}
     *     )
     * @param $id
     * @param Ticket $ticket
     * @param Request $request
     * @param EntityManagerInterface $em
     * @param UserInterface $user
     * @return Response
     */
    public function voirDetail($id, Ticket $ticket, Request $request, EntityManagerInterface $em, UserInterface $user)
    {
        // on crée une instance de la class Comment pour pouvoir les afficher
        $comment = new Comment();
 
        $form = $this->createForm(CommentType::class, $comment);
        $form->handleRequest($request);
        if ($form->isSubmitted() && $form->isValid()) {
            if (!$comment->getId()) {
                //on initialise la date de création du commentaire à la date du jour
                $comment->setCreatedAt(new DateTime());
                // on recupère le nom de celui qui a laissé le commentaire
                $comment->setTicket($ticket);
                $comment->setAuthor($user->getUsername());
                $em->persist($comment);
                $em->flush();
            }
 
            // On récupère les documents  transmis
            $documents =  $form->get('documents')->getData();
            // On boucle sur les documents
            foreach ($documents as $document) {
                // On génère un nouveau nom de fichier
                $fichier = md5(uniqid()) . '.' . $document->guessExtension();
 
                // On copie le fichier dans le dossier uploads
                $document->move(
                    $this->getParameter('documents_directory'),
                    $fichier
                );
 
                // On stocke l'image dans la base de données (son nom en réalité)
                $doc = new Document();
                $doc->setName($fichier);
                $ticket->addDocument($doc);
 
                // on recupère le ticket par son id
                $repo = $this->getDoctrine()->getRepository(Ticket::class);
                $ticket = $repo->find($id);
 
 
                return $this->redirectToRoute("ticket_detail", ['id' => $ticket->getId()]);
            }
 
            return $this->render('ticket/detail_ticket.html.twig', [
                "ticket" => $ticket,
                'commentForm' => $form->createView(),
 
            ]);
        }
    }
 
 
}

Merci pour votre aide !!