在TYPO3中从我的分机呼叫新闻时获得空对象

时间:2016-12-01 11:33:10

标签: typo3 typoscript extbase tx-news

我必须创建一个扩展来过滤新闻。所以我用新闻模型构建了一个扩展。我的模型看起来像

class News extends \GeorgRinger\News\Domain\Model\News
{        
}

我必须列出我的扩展程序中的所有新闻。所以我打电话给

$this->newsRepository->findAll();

从我的控制器。但它返回一个空对象。所以我写了一个自定义函数FilterNews()这里是我的代码

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

uid = 1有新闻。但它返回空。我如何获取新闻?

我在我的存储库中包含了以下功能

     public function initializeObject() {
            $querySettings = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Typo3QuerySettings');
            $querySettings->setRespectStoragePage(FALSE );
            $querySettings->setIgnoreEnableFields(TRUE);   
$querySettings->setEnableFieldsToBeIgnored(array('disabled','starttime'));
            $querySettings->setIncludeDeleted(FALSE);
            $querySettings->setRespectSysLanguage(FALSE);

            $this->setDefaultQuerySettings($querySettings);
        }

3 个答案:

答案 0 :(得分:1)

请检查您自己的扩展程序的storagePid设置是否设置为tx_news文件夹的pid:

plugin.my_extkey {
  persistence {
    storagePid = xxx
  }
}

否则你可以说你的查询它不应该尊重存储pid:

$query = $this->createQuery();
$querySettings = $query->getQuerySettings();
$querySettings->setRespectStoragePage(false);
$query->setQuerySettings($querySettings);

答案 1 :(得分:1)

总是忘记同样的:你"返回$ query-> execute();" ? ; - )

答案 2 :(得分:1)

另一种解决方案:向您的模型添加表格映射,请参阅此扩展程序:https://github.com/Schweriner/tgm_lazynews/blob/master/ext_typoscript_setup.txt