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 :

Affichage de noms dans un Form [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    ISTV
    Inscrit en
    Novembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : ISTV

    Informations forums :
    Inscription : Novembre 2015
    Messages : 12
    Par défaut Affichage de noms dans un Form
    Bonjour, voilà j'ai un petit soucis,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       ->add('idPatient', 'entity' , array(
                    'class' => 'TMAgendaBundle:Patient',
                     'query_builder' => function(PatientRepository $repository) {
                    return $repository->createQueryBuilder('p')
                           ->select("p.nom");
             }
     
                ))
    Voici le code, j'explique :

    Je travail sur une application de prise de RDV, ici nous sommes dans le FormType RDV. je souhaites faire appel à mon Entité/Repository Patient afin d'afficher leurs noms dans une sorte de choice list.

    Seulement j'ai un petit soucis dans mon entité rdv je fais appel seulement à l'id de mon patient, et le query builder à l'air de fonctionner, quand j'enlève le select, il me met les id correctement dans une choice list mais des que j'utilise un select,

    Warning: get_class() expects parameter 1 to be object, string given in /opt/lampp/htdocs/Psychiatrie/vendor/symfony/symfony/src/Symfony/Component/Form/Extension/Core/ChoiceList/ObjectChoiceList.php line 256
    Voila, si vous pouviez m'aider ce serait fortement gentil ...

    Merci d'avance

    edit : en tentant ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     ->add('idPatient', 'entity' , array(
                    'class' => 'TMAgendaBundle:Rdv',
                     'query_builder' => function(RdvRepository $repository) {
                    return $repository->createQueryBuilder('r')
                           ->select(array('IDENTITY(r.idpatient) AS idP'))
                          // ->from('TMAgendaBundle:Rdv', 'r')
                           ->join('TMAgendaBundle:Patient', 'p','WITH', 'r.idpatient = p.id');
     
             }
     
                ))
    je n'ai plus d'erreur mais rien ne s'affiche dans ma liste (le array dans le select ne change rien)

  2. #2
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    il attend des objets tu indiques des string.

    dans le join faut faire un truc du genre


    think objet

  3. #3
    Membre averti
    Homme Profil pro
    ISTV
    Inscrit en
    Novembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : ISTV

    Informations forums :
    Inscription : Novembre 2015
    Messages : 12
    Par défaut
    hmm je ne comprends pas trop, il faut appeler l'objet patient ?

  4. #4
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    >join('TMAgendaBundle:Patient', 'p','WITH', 'r.patient = p');

  5. #5
    Membre averti
    Homme Profil pro
    ISTV
    Inscrit en
    Novembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : ISTV

    Informations forums :
    Inscription : Novembre 2015
    Messages : 12
    Par défaut
    merci de la réponse rapide

    voila ce que ça me me met, c'est pour cela que j'avais fais le join sur la fk :/


    [Semantical Error] line 0, col 86 near 'patient = p': Error: Class TM\AgendaBundle\Entity\Rdv has no field or association named patient
    ps : je suis un débutant ne m'en voulez pas


    mon entité rdv ;

    Code : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    class Rdv
    {
        /**
         * @var integer
         *
         * @ORM\Column(name="idRdv", type="integer", nullable=false)
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="IDENTITY")
         */
        private $id;
     
        /**
         * @var \DateTime
         *
         * @ORM\Column(name="date", type="date", nullable=true)
         */
        private $date;
     
        /**
         * @var string
         *
         * @ORM\Column(name="commentaire", type="text", nullable=true)
         */
        private $commentaire;
     
        /**
         * @var boolean
         *
         * @ORM\Column(name="venu", type="boolean", nullable=true)
         */
        private $venu;
     
        /**
         * @var \Patient
         *
         * @ORM\ManyToOne(targetEntity="Patient")
         * @ORM\JoinColumns({
         *   @ORM\JoinColumn(name="idPatient", referencedColumnName="id")
         * })
         */
        private $idpatient;
     
        /**
         * @var \Utilisateurs
         *
         * @ORM\ManyToOne(targetEntity="Utilisateur")
         * @ORM\JoinColumns({
         *   @ORM\JoinColumn(name="idUtilisateur", referencedColumnName="id")
         * })
         */
        private $idutilisateurs;
     
        /**
         * @var \Lieux
         *
         * @ORM\ManyToOne(targetEntity="Lieux")
         * @ORM\JoinColumns({
         *   @ORM\JoinColumn(name="idLieux", referencedColumnName="id")
         * })
         */
        private $idlieux;
    je n'ai pas mis les méthodes

  6. #6
    Membre averti
    Homme Profil pro
    ISTV
    Inscrit en
    Novembre 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : ISTV

    Informations forums :
    Inscription : Novembre 2015
    Messages : 12
    Par défaut
    J'ai essayer plusieurs chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ->add('idpatient', 'entity' , array(
    'class' => 'TMAgendaBundle:Patient',
    'query_builder' => function(PatientRepository $repository) {
    return $repository->createQueryBuilder('p')
    ->select('p')
    ->join('TMAgendaBundle:Rdv', 'r','WITH', 'p.id = r.idpatient');
    }
    ))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ->add('idpatient', 'entity' , array(
    'class' => 'TMAgendaBundle:Patient',
    'query_builder' => function(PatientRepository $repository) {
    return $repository->createQueryBuilder('p')
    ->select('p.nom || p.prenom')
    ->join('TMAgendaBundle:Rdv', 'r','WITH', 'p.id = r.idpatient');
    }
    ))
    Aucune erreur mais ça me retourne une liste vide, je dois surement louper quelque chose ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ajuster l'affichage des bouton dans une forme large
    Par tvcinq dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 30/09/2010, 17h56
  2. Affichage des images dans un form
    Par grandi_hamza dans le forum C#
    Réponses: 4
    Dernier message: 27/07/2010, 15h27
  3. Ordre d'affichage des control dans une form
    Par bipcpp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/12/2009, 20h08
  4. [C# BitBlt & Co] Affichage du bureau dans une form
    Par ben_popcorn dans le forum Windows Forms
    Réponses: 5
    Dernier message: 06/08/2008, 18h31
  5. [C++/CLI]Affichage du log dans un form
    Par S2S dans le forum C++/CLI
    Réponses: 0
    Dernier message: 21/09/2007, 17h11

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