Bonjour a tous je suis Donald débutant en symfony version 5.2
j'arrive à inserer les données en base de données mais le soucis c'est que j'arrive pas les afficher sur ma vue aidez moi svp

//mon controller

<?php

namespace App\Controller;

use App\Entity\Achat;
use App\Form\EnregistrementType;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Validator\Constraints\DateTime;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class GestionController extends AbstractController
{

[Route('/gestion', name: 'gestion')]
public function index(Request $request, EntityManagerInterface $manager): Response
{
    $achat= new Achat();
    $form=$this->createForm(EnregistrementType::class , $achat);
    $form->handleRequest($request);

    if ($form->isSubmitted() && $form->isValid()) { 
        $achat->setCreateAt(new \DateTime());
        $manager->persist($achat);
        $manager->flush();
    }
    return $this->render('gestion/gestion.html.twig', [
        'form' =>$form->createView()
    ]);
}

}

//mon controller pour afficher les achats

<?php

namespace App\Controller;

use App\Entity\Achat;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class AffichageController extends AbstractController
{

[Route('/affichage', name: 'affichage')]
public function index(): Response
{
    $achats=$this->getDoctrine()->getRepository(Achat::class)->findAll();
    return $this->render('affichage/affichage.html.twig', [
        'achats' => '$achats',
    ]);
}

}

//ma vue pour afficher les achats

{% extends 'base.html.twig' %}

{% block title %}Hello AffichageController!{% endblock %}

{% block body %}
<div class="container">
<h1 class="">Listes des achats</h1>
<table class="table table-stripe">
<thead>
<tr class="table-light">
<th>ID</th>
<th>NOM PRODUIT</th>
<th>CATEGORIES</th>
<th>QUANTITE</th>
<th>PRIX</th>
<th>NOM CLIENT</th>
<th>TELEPHONE</th>
<th>EMAIL</th>
<th>ADRESSE</th>
<th>DATE </th>

</tr>
</thead>

<tbody>
{% for achat in achats %}
<tr>
<td> {{ achat.id }} </td>
<td> {{ achat.nom_produit }} </td>
<td> {{ achat.categories }} </td>
<td> {{ achat.quantite }} </td>
<td> {{ achat.prix_produit }} </td>
<td> {{ achat.nom_client }} </td>
<td> {{ achat.telephone }} </td>
<td> {{ achat.email }} </td>
<td> {{ achat.adresse }} </td>
<td> {{ achat.adresse }} </td>
</tr>
{% endfor %}
<tbody>

</table>
</div>

{% endblock %}

7 réponses


Akli Ouamara
Réponse acceptée

a premiere vu tu as deux probleme ou erreurs
1- 'achats' => '$achats', 'achats' => $achats (sans guillemet et virgule)
au niveau twig
for achat in achats normalement tu dois inverser achats in achat

Salut, dans ta vue tu peux faire un {{ dump(achats) }} pour savoir ce que contient la variable achats.

merci j'ai fais un {{ dump(achats) }} dans la vue mais c'est vide

Il faut que tu retire les guillemets à $achats dans la fonction render

déja mais pas de résultat positive

quand tu fais un dd($achats) t'as quoi ?

merci a vous j'ai trouvé le problème achats' => $achats et non 'achats' => '$achats'