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 :

Afficher un champ particulier d'un objet dans un formulaire


Sujet :

Symfony PHP

  1. #1
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut Afficher un champ particulier d'un objet dans un formulaire
    Bonjour,

    J'ai une classe Client contenant la relation suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    /**
         * @ORM\ManyToOne(targetEntity="Sdz\ReportBundle\Entity\TypeClient")
         * @ORM\JoinColumn(nullable=false)
         */
        private $typeClient;
    Dans mon formulaire, j'ai besoin d'afficher le nom du type client (et non pas afficher l'entité TypeClient) :

    Pour l'entité, j'aurais écris quelque chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ->add('typeClient', 'entity', array(
                        'class' => 'SdzReportBundle:Client',
                        'property' => 'affichage'))
    ... et pour juste le nom du type client j'essaie quelque chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ->add('typeClient.affichage', 'text')
    ...ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ->add('typeClient.nom', 'text')
    Mais là, cela ne fonctionne pas du tout.

    Comment faut-il donc faire cela ?

    Merci d'avance.

    A+
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 168
    Points : 219
    Points
    219
    Par défaut
    Slt,

    Le plus simple, tu ajoutes un subform pour l'entité typeClient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ->add('typeClient',new TypeClientType())
    et dans le TypeClientType t'as que les champs que tu veux afficher.

  3. #3
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    Bonjour et merci pour ta réponse.

    Je suis désolé mais je ne comprends pas tout. Où dois-je ajouter la ligne suivante ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ->add('typeClient',new TypeClientType())
    ... au moment de créer le formulaire dans la classe TypeClientType ?

    Merci encore.

    A+ ;
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

  4. #4
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Hello,

    Ce n'est pas parce que tu ajoutes une entité à un formulaire qu'à l'affichage tu auras toute l'entité d'affichée.
    Ce n'est pas non plus nécessaire de te lancer dans les formulaires embarqués comme le suggère goabonga : ça n'a pas lieu d'être et ça ne répond pas à ton besoin.

    Si j'ai bien compris, tu veux choisir l'entité à lier en affichant (dans une liste déroulante par exemple) le champs de ton choix. Pour ça deux solutions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ->add('typeClient', 'entity', array('class' => 'SdzReportBundle:TypeClient'))
    + une méthode __toString dans la class TypeClient.

    ou bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ->add('typeClient', 'entity', array('class' => 'SdzReportBundle:TypeClient', 'property' => 'nomDuChamp'))
    Et même qu'en lisant la doc, tu peux trouver la réponse ! http://symfony.com/fr/doc/current/re...es/entity.html

  5. #5
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    Merci beaucoup pour ta réponse. +1

    A+
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/05/2015, 09h35
  2. Réponses: 3
    Dernier message: 24/06/2009, 19h34
  3. Réponses: 13
    Dernier message: 14/04/2008, 14h30
  4. Réponses: 4
    Dernier message: 10/08/2006, 17h58
  5. afficher les champs null de deux tables dans un select
    Par poil dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/09/2005, 15h05

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