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 :

Symfony 5 : createQueryBuilder retourne une erreur


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mars 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2019
    Messages : 16
    Par défaut Symfony 5 : createQueryBuilder retourne une erreur
    Bonjour,

    J'ai cette requête :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT enfant.nom, enfant.prenom, enfant.famille_id FROM enfant
    WHERE enfant.famille_id IN (
        SELECT famille_comite.famille_id FROM famille_comite
        LEFT JOIN membre_comite ON membre_comite.comite_id = famille_comite.comite_id
        LEFT JOIN membre ON membre_comite.membre_id = membre.id
        WHERE membre.id = 1
        AND famille_comite.actif = 1
    );

    Que j'ai souhaité transmuter sous Symfony 5, voici ce que j'ai fait :

    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
    public function findAllOfCurrentMember($member)
        {
            $em = $this->getEntityManager();
            $expr = $em->getExpressionBuilder();
     
            $in = $this->createQueryBuilder('')
                ->select('fc.famille')
                ->from('App\Entity\FamilleComite', 'fc')
                ->join('App\Entity\MembreComite', 'mc', $expr->eq('mc.comite', 'fc.comite'))
                ->join('App\Entity\Membre', 'm', $expr->eq('mc.membre', 'm.id'))
                ->where('m.id = :member')
                ->setParameter('member', $member)
                ->andWhere('fc.actif = 1')
            ;
     
            return $this->createQueryBuilder('e')
                ->where($expr->in('e.famille', $in->getDQL()))
                ->getQuery()
                ->getResult()
            ;
        }
    Je me retrouve avec cette erreur :

    [Semantical Error] line 0, col 63 near 'famille FROM': Error: Invalid PathExpression. Must be a StateFieldPathExpression.
    Quelqu'un peut-il m'aider ?

    Merci !

  2. #2
    Membre chevronné
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par ViccDev Voir le message
    Personne pour m'aider ? ...
    j'ai trouvé ce lien si ça pourrait t'aider

    https://stackoverflow.com/questions/...-in-doctrine-2

  3. #3
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mars 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2019
    Messages : 16
    Par défaut
    J'ai suivi cet exemple en faisant :

    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
    23
    24
    25
    26
    public function findAllOfCurrentMember($member)
        {
            $em = $this->getEntityManager();
            $expr = $em->getExpressionBuilder();
     
            return $em->createQueryBuilder()
                ->select('e.nom, e.prenom, e.famille')
                ->from('App\Entity\Enfant', 'e')
                ->where(
                    $expr->in(
                        'e.famille',
                        $em->createQueryBuilder()
                            ->select('fc.famille')
                            ->from('App\Entity\FamilleComite', 'fc')
                            ->join('App\Entity\MembreComite', 'mc', $expr->eq('mc.comite', 'fc.comite'))
                            ->join('App\Entity\Membre', 'm', $expr->eq('mc.membre', 'm.id'))
                            ->where('m.id = :member')
                            ->setParameter('member', $member)
                            ->andWhere('fc.actif = 1')
                            ->getDQL()
                    )
                )
                ->getQuery()
                ->getResult()
            ;
        }
    Mais je me retrouve avec cette erreur :

    [Semantical Error] line 0, col 26 near 'famille FROM': Error: Invalid PathExpression. Must be a StateFieldPathExpression.

  4. #4
    Membre chevronné
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Billets dans le blog
    7
    Par défaut
    c'est un peux difficile de deviner sans une base

    poste les entités suivantes ici

    Enfant
    FamilleComite
    MembreComite
    Membre

    et j'essai de reproduire sur mon env locale

Discussions similaires

  1. shell retourne une erreur
    Par nymus7 dans le forum Langage
    Réponses: 3
    Dernier message: 07/08/2008, 18h03
  2. [MySQL] requete qui retourne une erreur a l'execution
    Par naazih dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/05/2008, 12h59
  3. Requete SQL qui retourne une erreur
    Par gregal dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/03/2008, 23h05
  4. Réponses: 8
    Dernier message: 05/02/2008, 11h35
  5. [MSSQL 2005] Retourner une erreure dans une SP
    Par Danny Blue dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/08/2006, 08h19

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