web-dev-qa-db-fra.com

symfony findBy / findOneBy

Quelqu'un at-il fait face à ce problème étrange avec symfony3 (toute dernière version)?

J'ai le code simple suivant

$repository = $this->getDoctrine()
                   ->getManager()
                   ->getRepository('GeneralRegistrationBundle:Service');

$service = $repository->findOneBy(array('name' => 'Registration'),array('name' => 'ASC'));

    $comment = $service->getComment();
    $name = $service->getName();

    return new Response('le service is '. $name . ', content is ' . $comment);

ce code fonctionne. Je purge le cache et change findOneBy avec findBy:

$service = $repository->findBy(array('name' => 'Registration'),array('name' => 'ASC'),1 ,0);

alors j'ai l'erreur suivante:

Erreur: appel à une fonction membre getComment () sur le tableau

Quelqu'un a-t-il des idées ou des indices?

Merci d'avance

7
Dte

findBy () renvoie un tableau d'objets avec les conditions données. renvoie un tableau vide si aucun n'est trouvé. S'il n'y a qu'une seule ligne satisfaisant votre condition, vous devez ajouter un [0] à la fin de votre service $ comme ceci:

$service = $repository->findBy(array('name' => 'Registration'),array('name' => 'ASC'),1 ,0)[0];

sinon, vous devez parcourir le tableau trouvé avec foreach ou quelque chose de similaire.

14
abdollah zakeri