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 :

Formulaire : Collection d'entities avec passage de parametre


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 119
    Par défaut Formulaire : Collection d'entities avec passage de parametre
    Bonjour à tous,

    Je bloque sur la création d'un formulaire, j'ai beaucoup de mal à créer un formulaire contenant une collection.
    Pour le contexte, j'ai 3 entités, Devis, Client et Département.
    Un devis est forcément rattaché à un département, mais n'est pas forcément rattaché à un client.
    Un client est forcément rattaché à un département.

    J'aimerai donc créer un formulaire contenant tous les devis n'ayant pas de client rattaché, avec pour chaque ligne de ces devis, une liste déroulante contenant les clients du département auquel est rattaché le devis.

    Et le je patauge, j'ai tenté pas mal de truc en vain, je suis dans flou le plus total.

    Pour le moment, j'ai créé 2 formulaires. Le premier où l'on déclare un champ de type "Collection" qui fait lui même référence au second formulaire. Dans ce dernier, j'ai déclaré seulement 1 champ de type "Entity" pointant vers l'entité Client. Et c'est dans le "query_builder" que j'aimerai fait la recherche de client selon le département.
    Il faut donc que je passe ce fameux département en paramètre lorsque je déclare mon champ de type "Collection".

    Et vu qu'on parle de centaine de devis avec un client vide, ça prend tellement de temps qu'il m’éjecte avant la fin de la génération de la page.

    Avez-vous une idée ?

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 119
    Par défaut
    Bon j'ai réussi à avancer sur mon problème, mais je me heurte à un soucis, le temps d’exécution, certes en environnement développement ça prend plus de temps à l’exécution mais la il m'envoie boulet à chaque fois.
    Voici mon code, peut être trouverez-vous une solution :

    Le FormType avec le collection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add("devis","collection",array("type"=>new EmailType()));
    }
    Le FormType avec le fameux traitement :
    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
     
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->addEventListener(
            FormEvents::PRE_SET_DATA,
            function(FormEvent $event) {
                $form = $event->getForm();
                $department = $event->getData()->getDepartment();
                $form->add('client', 'entity', 
                    array(
                        "error_bubbling"=>true,
                        "required"=>false,
                        "property"=>"company",
                        'class' => 'LADRDevisBundle:Client',
                        'query_builder' => function(ClientRepository $er) use ($department) {
                            return $er->createQueryBuilder('c')->where("c.department = :department")->setParameter("department",$department)->orderBy("c.company","asc")->addOrderBy("c.representative","asc");
                        }
                    )
                );
            }
        );
    }

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/07/2007, 09h58
  2. Requete avec passage de parametres
    Par stawen dans le forum Jasper
    Réponses: 1
    Dernier message: 02/03/2007, 16h37
  3. Réponses: 7
    Dernier message: 20/03/2006, 13h19
  4. executer un fichier perl avec passage de parametre
    Par mpolodesm dans le forum Langage
    Réponses: 3
    Dernier message: 09/11/2005, 15h14
  5. [CR] fonction avec passage de parametres
    Par HULK dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 13/09/2005, 13h07

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