Utilisation de getRepository

Default
,

Bonjour à tous. juste à présent j’utilisai une requête sql directement dans mon contrôleur pour afficher mes donnés et je teste la fonction getRepository, mais de toute evidance ca ne marche pas.car j'ai ce message d'erreur : Impossible to access a key "compte" on an object of class "App\Entity\TauxTva" that does not implement ArrayAccess interface.

Voici mon contrôleur

<?php

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use App\Entity\TauxTva;
class TabController extends AbstractController
{
    /**
     * @Route("/", name="home")
     */
    public function index()
    {


        $products = $this->getDoctrine()
        ->getRepository(TauxTva::class)
        ->findAll();


        return $this->render('tab.html.twig', array("user" =>  $products));



    }
}

et voici ma vue

<h1>Members</h1>
<ul>
    {% for user in user %}
        <li>Numero de compte: {{ user['compte'] }} taux de TVA: {{ user['tauxtva'] }}</li>

    {% endfor %}
</ul>

Cordialement

2 Réponse

Default
,

salut,

1- comme ça c'est plus jolie ;)

/**
     * @Route("/", name="home")
     */
    public function index(TauxTvaRepository $TauxTvaRepository)
    {
        $products = $TauxTvaRepository->findAll();

        return $this->render('tab.html.twig', array("user" =>  $products));
    }

2- Regarde comment tu as écris "compte" dans ton Entity il y a t-il une majuscule au début ? si oui tu dois la mettre car la casse est prise en compte.

Mais je pense que le problème vient surtout du return dans ton controller. En effet tu passes la valeur "user" mais dans ta vue tu fais référence à la valeur "users" avec un "S" mais la variable "users' ici n'éxiste pas ... Il te faudra donc mettre un "S" dans la variable "users' de ton controller.

return $this->render('tab.html.twig', array("users" =>  $products));

et ton controller (avec la casse supposée)

<h1>Members</h1>
<ul>
    {% for user in user %}
        <li>Numero de compte: {{ user.Compte }} taux de TVA: {{ user.TauxTva }}</li>
    {% endfor %}
</ul>

3-

Default
,

Merci, c'etait bien les majuscule qui possait probleme!