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 :

querybuilder et champs collection


Sujet :

Symfony PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 65
    Points : 38
    Points
    38
    Par défaut querybuilder et champs collection
    Bonjour,
    voila j'ai une entity produit avec (entre autres) un champ ArrayCollection photos, relation OneToMany:

    Je souhaiterais via un formulaire de recherche (case à cocher "Avec photos uniquement") récupérer les produits possédant des photos
    Le problème est donc l'écriture de ma requête:

    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 getSearchProduct($data){
    ...
    $qb = $this->createQueryBuilder('p');
     
          if ($data['withPhoto'] == true){
    		$qb->andWhere(
     
                           //Ci dessous les différentes choses essayées jusque là, en vain:
    			$qb->expr()->not($qb->expr()->eq('p.photos', null))
                           //ou:
                            $qb->expr()->isNotNull('p.photos')
                           //ou:
                            $qb->expr()->gt($qb->expr()->length('p.photos'), 0)
                            //ou:
                            $qb->expr()->gt($qb->expr()->count('p.photos'), 0)
     
    			)
           		;
    	 }
    ...
    }
    Là je sais plus quelle autre options ils me restent?
    Les erreurs sont :"Error: Invalid PathExpression. StateFieldPathExpression or SingleValuedAssociationField expected. "
    Merci d'avance pour vos réponses

  2. #2
    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,

    Il serait de bon ton de s'intéresser aux jointures : c'est précisément le travail d'un 'inner join' (pas besoin de where).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $qb = $this->createQueryBuilder('p');
    $qb->join('p.photos', 'ph'); // join = innerJoin
    ++

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 65
    Points : 38
    Points
    38
    Par défaut
    de bon ton? alors d'accord je m'y met tout de suite...!
    Non sérieusement, je connais les jointures, ça fait 3 jours que j'en écris dans tous les sens, mais je sais pas je dois être fatigué...
    En tout cas ça marche,
    merci beaucoup du coup de main!!

Discussions similaires

  1. [2.x] Formulaire dynamique pour champ collection
    Par symfony_dev dans le forum Symfony
    Réponses: 0
    Dernier message: 20/09/2014, 18h12
  2. [2.x] Type de champ Collection - Ne pas afficher les objects existants
    Par philodido dans le forum Symfony
    Réponses: 6
    Dernier message: 26/06/2013, 17h53
  3. [2.x] Filtrer un champ Collection
    Par ludo1313 dans le forum Symfony
    Réponses: 2
    Dernier message: 18/06/2013, 10h46
  4. Réponses: 2
    Dernier message: 23/05/2012, 23h23
  5. [Collection] Tris sur plusieurs champs
    Par partyboy dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 12/07/2005, 16h56

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