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

Doctrine2 PHP Discussion :

Select une valeur dans une entité et comparer


Sujet :

Doctrine2 PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de JackSteller
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2019
    Messages : 41
    Par défaut Select une valeur dans une entité et comparer
    Hello a tous
    J'ai du mal avec les requêtes étant novice sur Symfony et doctrine

    Ce que je voudrais faire c'est trouver la valeur d'une date de naissance entrée par l'utilisateur et lui de finir une génération.

    Exemple: l'user avec l'id 13 est né en 1984.

    génération 1: 1940 a 1970

    génération 2 : 1971 a 1989

    etc...


    mon entité abstraite ou je récupérè la réponse de l'user Nom : class answer.png
Affichages : 858
Taille : 4,1 Ko
    24 = id de la réponse , 13 = id de l'user , 2= id de la question, answerFree = une sous entité.


    Dans mon entité answerFree Nom : class asnwerfree.png
Affichages : 868
Taille : 6,1 Ko
    je veux pouvoir récupérer la valeur (ici : "1984")
    et faire mon traitement par la suite...


    Alors j'ai un un findById("24"); j'ai bien l'objet mais je voulais passer par une requête dql pour bien ciblé ce que je veux.

    j'ai essayer ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class Answer_freeRepository extends \Doctrine\ORM\EntityRepository
    {
        public function FindtrouverAge(){
          $em = $entityManager = $this->getEntityManager(); 
          $query = $em->createQuery('SELECT u 
          FROM QuestionBundle\Entity\Answer_free u 
          WHERE  u.id = 24');
     
           $query->getResult();
     
        }
     
     
    }
    et ensuite dans un contrôleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $answerRepo = $this->getDoctrine()->getRepository(Answer_Free::class);
            $val = $answerRepo->FindtrouverAge();
            dump($val);

    cela retourne null je sais que je m'y prend mal merci de m'aider

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Par défaut
    bonjour,

    t'as null parce que la méthode FindtrouverAge ne retourne rien.

  3. #3
    Membre averti Avatar de JackSteller
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2019
    Messages : 41
    Par défaut
    j'ai pourtant une valeur en bdd

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Par défaut
    la méthode doit faire un return d'un tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public function FindtrouverAge(){
          $em = $entityManager = $this->getEntityManager(); 
          $query = $em->createQuery('SELECT u 
          FROM QuestionBundle\Entity\Answer_free u 
          WHERE  u.id = 24');
     
     return   $query->getResult(); 
     }

  5. #5
    Membre averti Avatar de JackSteller
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2019
    Messages : 41
    Par défaut
    j'arrive a avoir le tableau deja en faisant un findbyid("24") mais maintenant recupérer la valeur.comment?

    en faisant un foreach?

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Par défaut
    j'arrive a avoir le tableau deja en faisant un findbyid("24") mais maintenant recupérer la valeur.comment?

    en faisant un foreach?
    si tu es en Symfony 4, une classe de Repository hérite de ServiceEntityRepository

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    use App\Entity\MonEntite;
    use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
    use Symfony\Bridge\Doctrine\RegistryInterface;
     
    class ProductRepository extends ServiceEntityRepository
    {
        public function __construct(RegistryInterface $registry)
        {
            parent::__construct($registry, MonEntite::class);
        }
    }
    peut-tu poster le code de ton entité y compris son namespace ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. select 2 valeurs dans un champ
    Par pimpmyride dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/07/2008, 17h22
  2. [Interbase] Récupérer une valeur dans un select
    Par ftoutin dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 09/01/2007, 13h36
  3. Utiliser une liste de valeur dans un select
    Par in dans le forum Oracle
    Réponses: 13
    Dernier message: 09/01/2007, 11h33
  4. récupérer une valeur dans un selected
    Par lacfab dans le forum Langage
    Réponses: 6
    Dernier message: 14/12/2005, 09h48
  5. Selection d'une valeur dans une autre table
    Par beurnoir dans le forum Access
    Réponses: 1
    Dernier message: 13/10/2005, 12h02

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