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

Doctrine2 PHP Discussion :

Query d'un "entity field" dépendant d'un autre champ


Sujet :

Doctrine2 PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Query d'un "entity field" dépendant d'un autre champ
    Bonjour,

    Le contexte: j'ai quatre entités, "Responsable", "Enfant", "Famille" et "Paiement", chaque paiement étant lié à un responsable (payeur) et à un enfant (pour qui le paiement a été effectué). L'entité "Famille" lie un responsable (père, mère ou tuteur) aux enfants de la famille (cette entité intermédiaire est nécessaire car elle contient des infos). Pour ajouter un paiement, je choisis d'abord le responsable, j'obtiens ensuite un formulaire "Responsable" dans lequel j'ai inséré un formulaire imbriqué "Paiements" basé sur "PaiementType". Dans "PaiementType" j'ai un champ "Entity Field" (enfant) qui doit me permettre de sélectionner l'enfant.
    Ma question est la suivante: comment puis-je limiter le choix de cet "entity field" aux seuls enfants de la famille du responsable, au niveau du query_builder? J'ai essayé via form.vars.value.. mais la liste est vide à ce moment.

    Merci d'avance
    Papynouche

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Query_builder utilisant un argument
    Bien voilà, j'ai trouvé une solution à mon problème en passant l'id du "Responsable" d'abord au constructeur de "ResponsableType" qui le sauve dans une variable local qui lui-même est passé comme argument du constructeur du type imbriqué ("PaiementType"); la fonction "buildForm" sauve localement la variable de la classe "PaiementType", qui est ensuite utilisée dans le query_builder; voici la fonction buildForm de "PaiementType":

    public function buildForm(FormBuilder $builder, array $options)
    {
    $id = $this->respId; // respId est la variable ou le constructeur sauve l'id reçue
    $builder
    ->add('datePaiement')
    ->add('montantPaiement')
    ->add('typeMontant', 'typepaiement' , array(
    'label' => "Type paiement",))
    ->add('refExtraitCompte')
    ->add('note')
    ->add('enfant', 'entity', array
    (
    'label' => "Enfant",
    'class' => 'PAGPPortailBundle:Enfant',
    'query_builder' => function(EntityRepository $er) use ($id) {
    return $er->createQueryBuilder ('e')
    ->join('e.famille', 'f')
    ->addSelect('f')
    ->join('f.responsable', 'r')
    ->addselect('r')
    ->where('r.id = :id')
    ->setParameter('id', $id )
    ;
    },
    'property' => 'NomPrenom',
    )
    )

    ;
    }

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

Discussions similaires

  1. [AC-2010] Valeur par défaut d'un champ dépendant d'un autre champ
    Par deedoo12 dans le forum Modélisation
    Réponses: 2
    Dernier message: 25/10/2013, 16h37
  2. Champs dépendant d'un autre champ case
    Par Bouga74 dans le forum SQL
    Réponses: 4
    Dernier message: 07/03/2013, 13h39
  3. [AC-2003] champ dépendant d'un autre champ dans une table
    Par josi1986 dans le forum Modélisation
    Réponses: 3
    Dernier message: 21/07/2011, 17h10
  4. Numéro Auto dépendant d'un autre champ
    Par ob1knob dans le forum Access
    Réponses: 2
    Dernier message: 17/07/2006, 22h54

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