IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Récupérer plusieurs informations en page d'accueil


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Junior
    Inscrit en
    Septembre 2021
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Junior

    Informations forums :
    Inscription : Septembre 2021
    Messages : 70
    Par défaut Récupérer plusieurs informations en page d'accueil
    Bonjour,

    Je suis actuellement sur un projet de création d'un forum en Symfony 5.
    Mon but est de récupérer et d'afficher plusieurs informations sur la page d'accueil à savoir :
    - Le titre de chaque section/catégorie
    - Leur description
    - Le nombre total de sujets pour chaque section
    - Le nombre total de messages pour chaque section
    - Le dernier message posté avec sa date et son auteur

    Voici un aperçu

    Nom : Capture.PNG
Affichages : 195
Taille : 32,1 Ko

    J'ai bien récupéré les 3 premières informations. Seulement voilà, étant donné que j'ai une boucle for qui englobe tout le block main

    Code twig : 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
    {% block main %}
            {% for item in allTopic %}
                <div">                   
                    <div">
                        <h2><a href="{{ path('topic_browse', {id: item.id}) }}">{{ item.title }}</a></h2>
                        <p>{{ item.description }}</p>
                    </div>                 
                    <div>                     
                        <h3>Sujets</h3>                        
                        <p>{{ item.total_topic }}</p>
                    </div>         
                    <div>
                        <h3>Messages</h3>
                        <p></p>     
                    </div>
                    <div>
                        <p>Dernier message ici</p> 
                        <a href="#"></a>
                        <p>Le ...</p>
                        <p>Posté par ...</p>
                    </div>
                </div>
            {% endfor %}
    {% endblock %}


    Je me suis très vite heurté à une limite. A savoir que pour récupérer toutes les infos qu'il me faut, je devais insérer dans cette variable une "super requête" qui me récupérerait tout. Ce qui n'est pas tenable et trop compliqué.

    Je sais qu'il existe un moyen de récupérer toutes ces infos avec des méthodes bien spécifiques (par exemple une méthode qui va récupérer le nombre de sujets, une le nombre total de posts etc). Or je n'ai rien trouvé sur la doc de Symfony.

    Si des pro de PHP/Symfony pourraient m'aider je serai preneur.

    En vous remerciant

  2. #2
    Membre confirmé
    Homme Profil pro
    Junior
    Inscrit en
    Septembre 2021
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Junior

    Informations forums :
    Inscription : Septembre 2021
    Messages : 70
    Par défaut
    Pour info vu que les entités sont liées entre elles, je n'arrive pas à faire une requête globale qui me regrouperait toutes les infos dont j'ai besoin.

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT s.id, s.title, s.description, COUNT(t.section_id) total_topic FROM section s
    LEFT JOIN topic t ON s.id = t.section_id
    GROUP BY s.id

    Cette requête m'affiche bien les sections et leur nombre de topic respectif, elle affiche également les sections sans topic.

    Nom : Capture.PNG
Affichages : 144
Taille : 13,7 Ko

    Sauf que quand je fais une deuxième jointure avec l'entité POST

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT s.id, s.title, s.description, COUNT(t.section_id) total_topic, COUNT(p.topic_id) total_post FROM section s
    LEFT JOIN topic t ON s.id = t.section_id
    LEFT JOIN post p ON t.id = p.topic_id
    GROUP BY s.id

    Ca m'affiche 5 topics au total alors que j'en ai que deux. Parce que vu que j'ai 5 posts dans mes fixtures, et qu'un post est forcément lié à un topic, ca me crée automatiquement des topics supplémentaires. Ce que je veux pas.

    Nom : Capture.PNG
Affichages : 135
Taille : 15,6 Ko

    Je trouve pas le moyen de trouver une requête qui me récupérerait à la fois les sections avec leur nombre de topic respectif et pour chaque topic respectif, leur nombre de posts.

  3. #3
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 350
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 350
    Billets dans le blog
    17
    Par défaut
    Je trouve pas le moyen de trouver une requête qui me récupérerait à la fois les sections avec leur nombre de topic respectif et pour chaque topic respectif, leur nombre de posts.
    Donne un exemple de ce que tu voudrais en sortie.

  4. #4
    Membre confirmé
    Homme Profil pro
    Junior
    Inscrit en
    Septembre 2021
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Junior

    Informations forums :
    Inscription : Septembre 2021
    Messages : 70
    Par défaut
    Nom : Capture.PNG
Affichages : 142
Taille : 18,2 Ko

    Le titre de la section
    Sa description

    Pour chaque section:

    Son nombre total de topic
    Son nombre total de post
    L'id vers le dernier post et sa date

    Voilà en tout. J'avais mis aussi l'auteur du dernier post mais j'arrive déjà à pas récupérer les infos précédentes donc j'ai préféré laissé tomber cette donnée.

  5. #5
    Expert confirmé

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Billets dans le blog
    5
    Par défaut
    Si tes entités sont liées tu n'as pas besoin de requetes sql, symfony et doctrine vont s'en charger, il faut pour cela que tu utilises des groups de sérialisation, tu pourra ainsi choisir les données que tu veux exposer.
    https://symfony.com/doc/current/serializer.html

  6. #6
    Membre confirmé
    Homme Profil pro
    Junior
    Inscrit en
    Septembre 2021
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Junior

    Informations forums :
    Inscription : Septembre 2021
    Messages : 70
    Par défaut
    Merci Nikopol je me penche là dessus.

Discussions similaires

  1. Récupérer plusieurs informations - tableau ?
    Par feldi dans le forum JDBC
    Réponses: 4
    Dernier message: 22/01/2012, 16h37
  2. [phpBB][3] Récupérer les informations des sondages et faire une page de statistiques
    Par boubouchon dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 06/04/2009, 20h47
  3. Parser une page et d'en récupérer une information
    Par lecyberax dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 30/01/2008, 13h42
  4. [RegEx] Récupérer des informations d'une page HTML distante
    Par Marshall_Mathers dans le forum Langage
    Réponses: 2
    Dernier message: 27/02/2007, 16h49
  5. [MySQL] Checkboxes : récupérer les informations sur plusieurs lignes
    Par eric41 dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 12/06/2006, 12h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo