symfony findBy / findOneBy
кто-нибудь сталкивался с этой странной проблемой с symfony3 (самая последняя версия)?
у меня есть следующий простой код
$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);
тогда у меня есть следующие ошибки :
ошибка: вызов функции-члена getComment () в array
есть ли у кого-нибудь идеи или подсказки?
спасибо заранее
1 ответов
findBy() возвращает массив объектов с данными условиями. возвращает пустой массив, если он не найден.если есть только одна строка, удовлетворяющая вашему условию, вы должны добавить [0] в последний из ваших $service следующим образом:
$service = $repository->findBy(array('name' => 'Registration'),array('name' => 'ASC'),1 ,0)[0];
если нет, вы должны пройти через найденный массив с foreach или что-то подобное.