findByPid不适用于pages_language_overlay映射

时间:2013-01-14 17:52:49

标签: mapping repository typo3 extbase

(我使用带有extbase-extension的typo3 4.5。)

我将pages_language_overlay映射到我的extbase-model

Tx_Extension_Domain_Model_ModelName {
    mapping {
        tableName = pages_language_overlay
    }
}

我创建了一个带有一些setter和getter的模型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的结果。

有人有想法吗?

1 个答案:

答案 0 :(得分: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子句中。