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 :

fonction repository->find() doctrine [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2014
    Messages : 20
    Points : 16
    Points
    16
    Par défaut fonction repository->find() doctrine
    Bonjour,

    j'ai un problème avec la fonction find de l'entityRepository de doctrine.
    En fait cette fonction est faite pour récupérer une entité en fonction de la clé primaire donnée en paramètre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $monArticle = $repository_article->find($id);
    Moi en fait j'aimerai récupérer plusieurs enregistrements en passant un tableau d'id et non un id.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $mesArticles = $repository_article->find($arraySuppId);
    Apparemment cela ne marche pas.J'obtiens cet erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    The identifier id is missing for a query
    Pourtant il est ecrit qu'on peut le faire et j'ai bien passé mon entité en paramètre du repository :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $repository_article = $em->getRepository('Acme\BlogBundle\Entity\Article');

  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,

    La méthode find() n'est faite que pour retourner un objet par son id, pas une collection.

    Si tu veux retourner une collection par un tableau d'ID il faut que tu fasses une méthode custom dans ton repository dans laquelle tu feras un whereIn().

    Il semblerait qu'en utilisant la méthode magique findById($array), avec un tableau d'id cela puisse fonctionner.
    [EDIT] Je confirme avec le message de beberlei

    Sachant que findBy('id', array(1,2,3)) est la même chose que findById(array(1,2,3));
    ++

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2014
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    OK merci pour la réponse.

    En testant un peu j'ai vu qu'on pouvait utiliser la fonction find.
    Par contre dans le tableau passé en paramètre, il faut indiquer le nom du champ dans les clés du tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        		$arrayNewSupp = array();
        		foreach ($arraySupp as $value){
        			$arrayNewSupp['id'] = $value;
        		}
    Par contre pour supprimer des objets, je n'ai rien trouvé j'ai l'impression qu'il faut passer par le queryBuilder pour effacer des enregistrements.

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

Discussions similaires

  1. Fonction index ou find sur une variable multiple
    Par mohamed_ dans le forum SAS Base
    Réponses: 5
    Dernier message: 22/02/2013, 18h02
  2. lxml / fonction findall et find
    Par Rabbit57 dans le forum Général Python
    Réponses: 2
    Dernier message: 17/11/2008, 09h04
  3. find() de std::set avec fonction de comparaison
    Par Biglo dans le forum SL & STL
    Réponses: 3
    Dernier message: 13/01/2006, 08h50
  4. fonction python similaire à find en bash
    Par deb75 dans le forum Général Python
    Réponses: 1
    Dernier message: 21/12/2005, 11h48
  5. [VBA-E] Fonction "FIND"
    Par cinc dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/09/2005, 11h16

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