Свойство FindBy в TYPO3 Extbase MVC не работает

Я не могу запустить свойство магической функции FindBy в Extbase MVC

    $title=array(0 =>'Books Day');

    $each_event=$this->eventRepository->findByTitle($title);

$each_event возвращает объект типа TYPO3\CMS\Extbase\Persistence\Generic\QueryResult .

Как мне заставить это работать?

Я также пытался передать строку в findByTitle и findByOne. Оба не работают! :(

Я использую TYPO3 6.1 и сборщик расширений.


person user2354302    schedule 04.06.2013    source источник
comment
Проблема все еще существует?   -  person András Ottó    schedule 18.06.2013


Ответы (3)


Последняя часть этих волшебных функций всегда должна быть полем в базе данных. Так что "название" должно быть в вашей модели. У вас может быть поле «один» для вашего объекта, но я думаю, вы имели в виду findOneByTitle?

Тип объекта QueryResult правильный. Вы можете превратить его в массив для целей отладки, например:

$foo = $query->execute()->toArray();

Кстати: проверьте, является ли ваш eventRepository нулевым или нет, и вы можете попробовать это, чтобы увидеть, работает ли он вообще:

$result = $this->myRepository->findAll();
person Wipster    schedule 05.06.2013

Пытаться

$each_event=$this->eventRepository->findByTitle($title)->toArray();

Ссылка на QueryResult.

person András Ottó    schedule 05.06.2013

Как сказано в документации, он возвращает QueryResultInterface|array.

Как следствие, вы должны перебрать результат следующим образом:

foreach($each_event as $single_event) {
    $single_event->getProperty();
}

Если вы уверены, что он возвращает только одно значение, вы также можете получить к нему доступ по индексу 0:

$each_event[0]->getProperty();
person Rintisch    schedule 03.04.2019