我必须创建一个扩展来过滤新闻。所以我用新闻模型构建了一个扩展。我的模型看起来像
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);
}
答案 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