Partage
  • Partager sur Facebook
  • Partager sur Twitter

find() ne me renvoie rien symfony 5.3.10

Sujet résolu
    26 novembre 2021 à 11:52:22

    Bonjour,

    Je souhaite afficher mes articles par id en single et je n'ai aucun résultat avec find() alors que si j'utilise findAll() cela me renvoie bien ma liste d'articles voici ma fonction:

     /**
         * @Route("/sa/{id}", name="show_article")
         */
        public function show($id): Response
        {
            $repoArticle = $this->getDoctrine()->getRepository(Article::class);
    
            $article = $repoArticle->find($id);
            // dd($article);
    
            if (!$article){
                return $this->redirectToRoute('home');
             }
    
            return $this->render("show/articleSingle.html.twig", [
                'article' => $article,
            ]);
        }

    et mon template:

    {% block body %}
    
        {% for article in article %}
            <div class="container" style="width: 70%";>
                <h1 class="title p-3">{{ article.title }}</h1>
                <div class="img-fluid">
                    <img width="100%" src="/assets/uploads/articles/{{ article.image }}" alt="{{ article.title }}">
                </div>
                <div class="content">
                    <p class="date">Publié le: {{ article.createdAt | date("d/m/Y")}} à {{ article.createdAt | date("H:i")}} par {{ article.author }}</p>
                    <h2 class="title">{{ article.title }}</h2>
                </div>
                <p class="content text-justify">
                    {{ article.description | raw }}
                </p>
            </div>
        {% endfor %}
    
    {% endblock %}

    Je tiens à préciser que quand je fais : dd($article); cela m'affiche bien l'article voulu et sachant que le Template pour la liste d'articles est le même mis à part la pagination.

    Je vous remercie de votre aide


    • Partager sur Facebook
    • Partager sur Twitter
      26 novembre 2021 à 11:55:54

      Salut

      Le problème est peut-être que find() retourne un seul article, celui dont on lui a fourni l'ID en paramètre, alors que findAll() retourne une liste d'articles. La boucle dans le template ne fonctionnera pas si tu utilises la même chose avec find(), comment boucler sur quelque chose qui est un seul objet non "listable" ?

      • Partager sur Facebook
      • Partager sur Twitter
        26 novembre 2021 à 14:47:38

        Oui c'était bien ça et je me demande pourquoi j'avais mis cette boucle. Merci.
        • Partager sur Facebook
        • Partager sur Twitter

        find() ne me renvoie rien symfony 5.3.10

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown