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 :

Requête avec SUBSTRING et IN - Doctrine


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Par défaut Requête avec SUBSTRING et IN - Doctrine
    Bonjour à tous !

    Je fait appel à vos services car je rencontre un problème que j'arrive pas a résoudre. Ça se passe au niveau de la création de la requête. J'explique ce que je veux faire.

    J'ai une méthode rechercherClientParDepartement($tabDept) qui recherche les clients qui sont associés à un des département contenu dans le tableau de département $tabDept. Cependant mes clients n'ont pas de champ département, mais code postal. Je pensais donc récupérer ces codes postaux pour en récupérer seulement les deux premiers caractères, et ainsi pourvoir faire ma recherche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $andExpr = $qb->expr()->andX();
     
    $qb ->select('c')
                ->from('blabla:Client', 'c')
                ->addOrderBy('c.nom', 'ASC');
     
    // autres critères de recherche
     
    //critère sur le CP
    $andExpr->add($qb->expr()->in('substring(c.codePostal, 1, 2)', ":dpt"));
    $qb->setParameter('dpt', $tabDept);
    J'ai testé et quel que je soit la méthode (ou en passant par une requête DQL), j'ai une erreur qui ressort (problème de parenthèse). Impossible de faire le in() et le substring() en même temps.

    Du coup j'ai essayé de passer par un alias ($qb ->select('c, substring(c.codePostal, 1, 2) as dpt ') mais idem, une erreur apparaît
    "Error: 'dpt' does not point to a Class."
    J'espère avoir été assez clair !

    Merci pour votre aide

  2. #2
    Membre éprouvé
    Homme Profil pro
    Chef d'entreprise
    Inscrit en
    Mai 2011
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef d'entreprise
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2011
    Messages : 122
    Par défaut
    Bonjour,

    Tu as essayé quelque chose comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <?php
    $andExpr->add($qb->expr()->in($qb->expr()->substr('c.codePostal', 1, 2)), ':dpt');

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Par défaut
    Le problème est identique, même en passant par une variable intermédiaire.
    Error: Expected Doctrine\ORM\Query\Lexer::T_IN, got '('' in blablabla

Discussions similaires

  1. Requête avec SUBSTR
    Par bronon dans le forum Requêtes
    Réponses: 4
    Dernier message: 06/06/2013, 11h17
  2. [doctrine] Requête avec une jointure
    Par benhsaien dans le forum ORM
    Réponses: 4
    Dernier message: 28/03/2011, 15h14
  3. Réponses: 2
    Dernier message: 24/03/2011, 18h10
  4. Condition dans requête avec "substring"
    Par jojo1000 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 07/01/2010, 12h24
  5. Requête sql avec substring en criteria
    Par lodilodi dans le forum Hibernate
    Réponses: 2
    Dernier message: 09/12/2009, 17h05

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