Пользовательский репозиторий расширения TYPO3 = пустой результат

Я работаю над Typo3 6.2, ниже - выдержка из моего контроллера:

    $event_to_display = $this->eventRepository->findByCustom();
    $this->view->assign('event', $event_to_display);

а это мой собственный репозиторий:

public function findByCustom()
{

    $query = $this->createQuery();
    $query->matching($query->equals('sys_language_uid', 0));
    return $query->execute();

}

но результат пустой! Я считаю, что моя операция $ query-> equals () не работает, но я не могу понять почему. Таким образом, я хотел бы добавить второе условие: как это сделать?

Изменить: если я использую findByUid (), он работает, тогда проблема должна быть расположена в моем пользовательском коде, а не в контроллере или репо.


person Paolito75    schedule 02.01.2018    source источник


Ответы (2)


Думаю, Вы забыли набор StoragePid. Итак, первая проверка storagePid установлена ​​или нет. Если не установлен, сначала установите его, очистите Install Tool кеш и проверьте усиление.

Для набора StoragePid.

-: перейдите на главную страницу> Шаблоны, затем перейдите в постоянный редактор и установите StoragePID страницы с вашими записями.

person Pravin Vavadiya    schedule 02.01.2018

findByUid всегда найдет вашу сущность, поскольку она обходит любые другие ограничения.

Репозитории Extbase основаны на объектах, которые они запрашивают, что означает, что они не запрашивают базу данных напрямую, а скорее обращаются к диспетчеру постоянства для свойств вашей Entity. (Это не 100% точность, но это хорошая картина)

Чтобы получить объекты с другого языка (поскольку ваш код запрашивает поле), вы должны использовать QuerySettings для изменения ограничения целевого языка:

$query->getQuerySettings()->setRespectStoragePage(false);
person Cedric Ziel    schedule 02.01.2018
comment
Привет, Седрик, спасибо за ответ. Тот же результат с этим методом ... Я просто хочу отклониться от текущей области Entity и получить ту с определенным pid и определенным идентификатором языка. Звучит просто, но не для меня ^^ Как? - person Paolito75; 02.01.2018