2016-08-07 1 views
4

С кем-нибудь сталкиваются с этой странной проблемой с symfony3 (последняя версия)?symfony findBy/findOneBy

У меня есть следующий простой код

$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); 

этот код работает. я очистить кэш и изменить findOneBy с findBy:

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

то у меня есть следующее сообщение об ошибке:

Error: Call to a member function getComment() on array

ли кто-нибудь есть идеи или подсказки?

Заранее спасибо

+3

Что вы ожидали? findOne возвращает один и только один объект. find всегда возвращает массив из 0 или более объектов. – Cerad

+0

Fuhhhh .... Мне нужно отправиться в отпуск прямо сейчас .... спасибо Cerad – user2045003

+0

Решено ли? Если да, отметьте или отправьте ответ и примите его. –

ответ

9

findBy() возвращает массив объектов с заданными условиями. возвращает пустой массив, если никто не found.if есть только одна строка, удовлетворяющая ваше состояние, то вы должны добавить [0] на последнем из вашей $ службы, как это:

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

, если нет, то вы должны петлевой через найденный массив с foreach или что-то подобное.

 Смежные вопросы

  • Нет связанных вопросов^_^