在 TYPO3 中从我的分机呼叫新闻时得到空对象
Got empty object when call news from my extension in TYPO3
我必须创建一个扩展来过滤新闻。所以我用新闻模型构建了一个扩展。我的模型看起来像
class News extends \GeorgRinger\News\Domain\Model\News
{
}
我必须列出分机中的所有新闻。所以我打电话给
$this->newsRepository->findAll();
来自我的controller.But它returns一个空的object.So我写了一个自定义函数FilterNews()
这是我的代码
$query = $this->createQuery();
$query->matching(
$query->equals('uid', 1)
);
return $query->execute();
uid = 1
有新闻。但 returns 是空的。我如何访问新闻?
我在我的存储库中包含了以下函数
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);
}
请检查您自己的扩展程序的 storagePid 设置是否设置为 tx_news 文件夹的 pid:
plugin.my_extkey {
persistence {
storagePid = xxx
}
}
否则你可以说你的查询不应该考虑存储 pid:
$query = $this->createQuery();
$querySettings = $query->getQuerySettings();
$querySettings->setRespectStoragePage(false);
$query->setQuerySettings($querySettings);
总是忘记同样的事情:你"return $query->execute();"吗? ;-)
另一种解决方案:将 table 映射添加到您的模型中查看此扩展:https://github.com/Schweriner/tgm_lazynews/blob/master/ext_typoscript_setup.txt
我必须创建一个扩展来过滤新闻。所以我用新闻模型构建了一个扩展。我的模型看起来像
class News extends \GeorgRinger\News\Domain\Model\News
{
}
我必须列出分机中的所有新闻。所以我打电话给
$this->newsRepository->findAll();
来自我的controller.But它returns一个空的object.So我写了一个自定义函数FilterNews()
这是我的代码
$query = $this->createQuery();
$query->matching(
$query->equals('uid', 1)
);
return $query->execute();
uid = 1
有新闻。但 returns 是空的。我如何访问新闻?
我在我的存储库中包含了以下函数
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);
}
请检查您自己的扩展程序的 storagePid 设置是否设置为 tx_news 文件夹的 pid:
plugin.my_extkey {
persistence {
storagePid = xxx
}
}
否则你可以说你的查询不应该考虑存储 pid:
$query = $this->createQuery();
$querySettings = $query->getQuerySettings();
$querySettings->setRespectStoragePage(false);
$query->setQuerySettings($querySettings);
总是忘记同样的事情:你"return $query->execute();"吗? ;-)
另一种解决方案:将 table 映射添加到您的模型中查看此扩展:https://github.com/Schweriner/tgm_lazynews/blob/master/ext_typoscript_setup.txt