findByPid не работает для сопоставления pages_language_overlay

(Я использую typo3 4.5 с расширением extbase.)

Я сопоставил pages_language_overlay с моей моделью extbase.

Tx_Extension_Domain_Model_ModelName {
    mapping {
        tableName = pages_language_overlay
    }
}

Я создал модель Tx_Extension_Domain_Model_ModelName с некоторыми сеттерами и геттерами. после добавления репозитория Tx_Extension_Domain_Repository_ModelNameRepository с

public function initializeObject() {
    $this->defaultQuerySettings = $this->objectManager->create('Tx_Extbase_Persistence_Typo3QuerySettings');
    $this->defaultQuerySettings->setRespectStoragePage(FALSE);
}

и введите репозиторий следующим образом

public function injectModelNameRepository(Tx_Extension_Domain_Repository_ModelNameRepository $modelNameRepository) {
    $this->modelNameRepository = $modelNameRepository;
}

я не могу выбрать записи с помощью findByPid. Я тестировал его с помощью findByUid и повторил pid, и он работает, но я не получаю результатов с findByPid.

У кого-то есть идея?


person freshp    schedule 14.01.2013    source источник


Ответы (1)


мне осталось только добавить

public function initializeObject() {
    $this->defaultQuerySettings = $this->objectManager->create('Tx_Extbase_Persistence_Typo3QuerySettings');
    $this->defaultQuerySettings->setRespectStoragePage(FALSE);
    $this->defaultQuerySettings->setRespectSysLanguage(FALSE);
}

после этого работает хорошо. В противном случае запрос имеет проверку, например

AND pages_language_overlay.sys_language_uid IN (0,-1)

в предложении where.

person freshp    schedule 15.01.2013