Partage
  • Partager sur Facebook
  • Partager sur Twitter

Développement symfony 2.8

Erreur sur l'affichage d'une Vue

    27 avril 2017 à 19:23:38

    Bonjour,

    actuellement sur le développement d'un site web faisant office d'espace client pour une société, 

    j'ai récemment rencontré un problème que je ne parvient pas à régler.

    Pour résumer: 

    Je manipule une base de donnée existante sur laquelle j'ai effectué un mapping pour générer les entités.

    J'ai déjà plusieurs page fonctionnant normalement où je réussi bien à récupérer les tuples des tables en BDD et à les afficher.

    Jusque là tout fonctionne.

    Cependant sur une des pages du site je n'arrive pas à afficher mon objet en utilisant la notation {{ objet.attribut }} qui me génère l'erreur

    suivante : 

    J'ai alors utilisé un dump pour vérifier que la requête personnalisé que j'ai créer fonctionne bien et effectivement je récupère bien le la row qui s'affiche alors sur la page du site.

     Voilà ce que j'obtiens avec le dumb et qui correspond bien à mon tuple en BDD.

    Si quelqu'un pourrait m'indiquer la raison pour laquelle je ne peux pas récupérer les attributs de l'objet qui s'affiche pourtant bien dans la vue.

    En vous remerciant par avance,

    Charlie.

    • Partager sur Facebook
    • Partager sur Twitter
      27 avril 2017 à 20:45:19

      Hello,

      Tout simplement car tu obtiens un tableau d'objet et non un objet.

      Si tu es dans ce cas, c'est que : 

      -> soit tu utilises findBy

      Dans ce cas il faut que tu optes pour findOneBy. Il te retournera seulement un résultat et non un tableau.

      -> soit getResult() dans ta requête DQL

      Alors tu dois utilisé plutôt getOneOrNullResult() qui te retournera comme son nom l'indique un ou null résultat.

      -
      Edité par Xerophy 27 avril 2017 à 20:46:32

      • Partager sur Facebook
      • Partager sur Twitter
        27 avril 2017 à 21:16:40

        Salut,

        Effectivement le problème venait d'ici, je me doutais qu'il y avait un problème au niveau de l'objet manipulé ce qui avec du recul semble tout à fait logique.

        J'ai simplement utiliser la méthode getOneOrNullResult() que je ne connaissais pas.

        Merci pour ta réponse rapide et constructive ! Je me coucherais moins bête ce soir...

        Charlie.

        PS: sait-tu comment on peut concaténer l'attribut récupérer à l'aide de la notation {{ }} dans une chaîne de caractère pour la mettre dans une URL qui dépend de ce dernier (le caractère visait est un entier passé en paramètre dans l'URL sous forme &id=lattributdelobjet& ).

        -
        Edité par Chauselmann 27 avril 2017 à 21:31:13

        • Partager sur Facebook
        • Partager sur Twitter
          27 avril 2017 à 21:58:34

          Voila ce que je cherche à obtenir. Concaténer le {{consoInternet.prtg}} dans l'url

          -
          Edité par Chauselmann 27 avril 2017 à 22:04:15

          • Partager sur Facebook
          • Partager sur Twitter
            28 avril 2017 à 13:18:38

            Salut !

            L'URL, c'est celui de ton application, ou c'est un URL externe ?

            Dans le premier cas, sache que tout paramètre qui n'est pas dans le path de la route et qui est passé à path() devient un paramètre query. Par exemple, une route truc_show avec le chemin /truc/{id}/show que tu génères avec {{ path('truc_show', {'id': 2, 'chose': 'blablabla'}) }} va rendre l'URI /truc/2/show?chose=blablabla.

            Dans le second cas, où est-ce que tu souhaites faire ta concaténation, dans le contrôleur ou dans la vue ? Dans quel contexte plus précisément, c'est dans du HTML ou un script JavaScript ?

            • Partager sur Facebook
            • Partager sur Twitter
              28 avril 2017 à 16:21:30

              salut!

              Tout d'abord merci pour ta réponse.

              J'ai trouvé une solution j'ai utilisé la notation {{ asset('le début de mon URL' ~objet.attribut~ 'la fin de mon URL') |trans }} et cela fonctionne.

              En fait l'URL en HTML est utilisée dans une balise <iframe> générant un graphique de consommation de bande passante en fonction d'un id de client de je récupère avec {{objet.attribut}}.

              Une nouvelle question existe t-il nativement dans twig une fonction pour convertir un attribut d'objet exprimé en seconde en format de type HH:MM:SS et non obtenir quelque chose de la forme 1,87 (qui ne correspond pas à 1min et 87 seconde). En espérant être clair =).

              Charlie

              • Partager sur Facebook
              • Partager sur Twitter
                28 avril 2017 à 17:44:59

                Non, pas que je sache, à moins que ce soit vraiment un timestamp, auquel cas on pourrait tricher un petit peu.

                -
                Edité par Ymox 28 avril 2017 à 17:45:29

                • Partager sur Facebook
                • Partager sur Twitter
                  2 mai 2017 à 16:47:51

                  Bonjour, 

                  ayant bien avancé dans le développement de mon site grâce à votre aide, j'ai rencontré une nouvelle erreur.

                  J'ai créé une requête personnalisé avec une jointure et je récupère un tableau contenant deux type d'entités.

                  Voilà ce que j'obtiens avec un {{ dump(service) }} : (service étant le nom du tableau renvoyé à ma vue )

                  Cependant je n'arrive pas à afficher les attributs des entités.

                  Par exemple quand j'essayes d'afficher un attribut de l'entité pack, le framework tente d'utiliser la méthode de l'entité Clientpack.

                  Ma question comment distinguer les objets du tableau que je souhaites afficher ?

                  J'avais pensé pouvoir utiliser quelque chose comme : {{ service.Clientpack.attribut }} ou {{service.Pack.attribut }}

                  J'ai également essayé de créer 2 boucle pour afficher différemment chaque objet mais je n'arrive pas à trouver la solution.

                  Si jamais quelqu'un connait la solution.

                  Charlie.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    2 mai 2017 à 17:22:54

                    Tu as quoi comme erreur exactement ?

                    • Partager sur Facebook
                    • Partager sur Twitter
                      2 mai 2017 à 17:28:00

                      Quand je test avec:

                      J'obtiens:

                      Il ne réussit qu'à afficher les attributs qui sont liés dans les deux table par exemple pour idpack qui sont des clés étrangères.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        2 mai 2017 à 17:31:34

                        C'est donc parce que services est déjà un ClientPack ou un pack. Pas besoin de récupérer comme si c'était un "niveau intermédiaire". Tu récupères bien service.idpack et service.etat, pourquoi pas directement service.idCde aussi ?

                        CharlieHauselmann a écrit:

                        Il ne réussit qu'à afficher les attributs qui sont liés dans les deux table par exemple pour idpack qui sont des clés étrangères.

                        Logique.

                        Si tu dois adapter ce que tu veux afficher dans ta vue en fonction du type d'objet, je ne pense pas qu'il ait été malin de les fusionner. Il n'y a volontairement pas de moyen de tester les types autre que les itérables avec Twig.

                        -
                        Edité par Ymox 2 mai 2017 à 17:32:32

                        • Partager sur Facebook
                        • Partager sur Twitter
                          2 mai 2017 à 17:34:36

                          Je ne peut pas récupérer services.etat vu qu'il ne correspond qu'à l'entité clientpack et non pack, je n'ai que la possibilité d'afficher idpack qui est identique dans les deux entités (clés)

                          le problème c'est que j'ai besoin de récupérer les deux entités qui sont clientpack et client et qui sont liés.

                          En fonction de l'identifiant d'un client je récupère le ou les clientpack qui lui sont attachés ainsi que le descriptif des différents packs.

                          Je récupère bien dans le dump ce que je veux afficher, je voudrais simplement afficher certain attributs des objets que je récupère et vois dans ce dernier.

                          Edit: ou alors est-il possible de renvoyer sous deux array les entités récupérées dans la requête, un tableau contenant tous les clientpack et un autre contenant les packs ?Plutôt que de manipuler un tableau à plusieurs entités ?

                          -
                          Edité par Chauselmann 2 mai 2017 à 17:46:53

                          • Partager sur Facebook
                          • Partager sur Twitter
                            9 mai 2017 à 15:22:12

                            Salut,

                            je me heurte à un nouveau problème,

                            J'ai une page listant des factures client tout ce qu'il y a de plus normal, jusque là pas de problème.

                            Cependant je souhaiterais lors du click sur le lien du numéro de facture (ex:FA-2017-14116) faire apparaître le détail de la facture correspondante

                            dans une pop-up modal.

                            Pour cela j'ai créé une nouvelle page html.twig pour afficher le contenu de ma requête.

                            En revanche je ne sais pas comment "imbriquer" cette page dans une pop-up.

                            Des pistes à me donner ?

                            Charlie.

                            • Partager sur Facebook
                            • Partager sur Twitter

                            Développement symfony 2.8

                            × 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