Как получить отключенные объекты в TYPO3 8.x extbase? - PullRequest
0 голосов
/ 25 января 2019

Я установил простую настройку запроса к репозиторию, чтобы получить определенный fe_user в TYPO3 CMS 8.7.22. Без отключения этого fe_user репозиторий возвращает ожидаемый объект.

Но после отключения объекта снова хранилище возвращает null. Так почему же setIgnoreEnableFields и setEnableFieldsToBeIgnored больше не работают?

$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
$defaultQuerySettings = $objectManager->get('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Typo3QuerySettings');
$defaultQuerySettings->setRespectSysLanguage(FALSE);
$defaultQuerySettings->setRespectStoragePage(TRUE);
$defaultQuerySettings->setIgnoreEnableFields(TRUE);
$defaultQuerySettings->setEnableFieldsToBeIgnored(array('disable'));

$someRepository->setDefaultQuerySettings($defaultQuerySettings);
$response = $someRepository->findByIdentifier($fe_user_id);
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($response);

1 Ответ

0 голосов
/ 25 января 2019

Это функция findByUid по умолчанию frontendUserRepsository. Там они мешают получить скрытые / удаленные объекты. Поэтому я создаю свою собственную функцию хранилища для этого случая:

public function findHiddenByUid($uid){
    $query = $this->createQuery();
    $qs = clone($this->defaultQuerySettings);
    $qs->setIgnoreEnableFields(TRUE);
    $qs->setEnableFieldsToBeIgnored(['disable','hidden','disabled']);
    $query->setQuerySettings($qs);
    $query->matching($query->equals('uid', $uid));
    return $query->execute()->getFirst();
}
...