Bonjour,

j'essay d'afficher une colone de mon tableau en base.
Controller :

<?php

namespace Tuto\HelloBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class DefaultController extends Controller
{
    public function indexAction()
    {
        $em = $this->getDoctrine()->getManager(); 

        $query = $em->createQuery(
            'SELECT Fr 
                FROM translate'
            );

        $peple = $query->getResult();

        return $this->render('HelloBundle:Default:index.html.twig', array('peple' => $peple));
    }
}
?>

Translate.php

<?php
namespace Tuto\Entity;

use Doctrine\ORM\Mapping as ORM;

class Translate
{
        protected $Fr;

    public fonction Fr()
    {
        return $this->Fr;
    }

}
?>

Index.html.twing

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

{% block body %}
    <div class="container">

        <ul>
        {% for translate in peple %}
        <lit> {{ translate.fr}} </lit>
        </ul>
    </div>

{%  endblock %}

2 réponses


Salut, ta query n'est pas bonne, on utilise du DQL.
De plus attention ta fonction pour créer te donner ton résultat doit être dans un Repository! (très mauvaise pratique comment tu fais ta requête.)

Ne jamais faire une requête directement dans ton controler. Utilise un repository pour ta classe dans lequel tu vas créer ta métode qui te retournera ta query, et ensuite tu appelles ta méthodes dans le controller.

De plus as tu essayé de faire un ->findAll() sur ta classe, et l'afficher dans ta vue en faisant une boucle?