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 или что-то подобное.