簡體   English   中英

如何在TYPO3 8.x extbase中獲取禁用的實體?

[英]How to get disabled entities in TYPO3 8.x extbase?

我已經設置了一個簡單的存儲庫查詢設置,以在TYPO3 CMS 8.7.22中獲得某些fe_user。 如果不禁用此fe_user,則存儲庫會返回預期的實體。

但是在再次禁用對象之后,存儲庫將返回null 那么,為什么setIgnoreEnableFieldssetEnableFieldsToBeIgnored不再起作用?

$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);

它是默認的frontendUserRepsositoryfindByUid函數。 在那里,它們防止獲取隱藏/刪除的對象。 因此,針對這種情況,我構建了自己的存儲庫功能:

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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM