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 :

Filtrer un champ Collection


Sujet :

Symfony PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Filtrer un champ Collection
    Bonjour,

    J'ai deux types d'Entités : Compte et Transaction.

    Dans le formulaire CompteType, j'ai un champ de type Collection dans un formulaire, qui correspond à la propriété Compte.Transactions. J'aimerais pouvoir filtrer les éléments de la Collection par date (afin d'afficher les transactions du compte pour le mois de décembre 2012, janvier 2013, etc.).

    Toutefois, contrairement au champs de type "entity", la propriété "query_builder" n'est pas supportée pour les champs de type "collection".

    Y a-t-il un moyen d'implémenter cette fonctionnalité ?

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    Bonjour,
    Il n'y a pas d'équivalent pour le champ Collection, seul le champ entity a des liens avec la librairie Doctrine.
    A priori ton filtre devrait se faire lorsque tu recherches ton entité:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $dql="SELECT c,t 
    FROM Compte c 
    JOIN c.transaction t
    WITH t.date BETWEEN  '2013-06-01' AND '2013-06-31'";
     
    $entity=$this->getManager()->createQuery($dql)->getSingleResult();
     
    $form=$this->createForm(new CompteType(),$entity);
    Mais attention, il y a des risques pour que Doctrine efface toutes les entités Transactions autres que celles du mois en cours,cela dépendra de la façon dont tu as configuré tes relations.

    une autre solution est de mapper ton formulaire à un autre objet qu'une entité Compte.
    Par exemple un objet CompteMensuelFactory

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2013
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 34
    Points : 33
    Points
    33
    Par défaut
    Salut,

    Peut être que ca t'aidera.

    Pour afficher des entités dans un formulaire en les triant (ici selon le champ "ordre" dans ma bdd):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ->add('decoupage', 'entity', array(
                    'multiple'  => false,
                    'expanded' => false,
                    'class' => 'MaPrezMainBundle:Decoupage',
                    'query_builder' => function(EntityRepository $er) {
                        return $er->createQueryBuilder('u')
                        ->orderBy('u.ordre', 'ASC');
                    },
                    'property' => 'nom',
                    'empty_value' => 'Veuillez choisir',
                    'required' => false
                ))

Discussions similaires

  1. filtrer un champ avec '*' devant
    Par gregcat dans le forum Bases de données
    Réponses: 4
    Dernier message: 18/07/2006, 22h19
  2. Filtrer un champ TDateTime
    Par Ben_Le_Cool dans le forum Bases de données
    Réponses: 9
    Dernier message: 10/05/2006, 22h07
  3. filtrer un champ par un "sous type"
    Par alex_r77 dans le forum Oracle
    Réponses: 1
    Dernier message: 27/04/2006, 10h16
  4. [Access][SQL] Filtrer un champ text qui peut être NULL
    Par aumax1 dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/04/2006, 08h40
  5. [ADO.NET][VB.Net]Comment filtrer certains champs de DataRow?
    Par Philorix dans le forum Accès aux données
    Réponses: 3
    Dernier message: 14/02/2006, 20h26

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