命令控制器中TYPO3 extbase存储库的findAll()返回空对象

时间:2017-10-09 21:57:52

标签: php typo3 extbase typo3-7.6.x

我想在命令控制器中使用存储库来不时执行一个过程。我在操作控制器和命令控制器中有存储库注入,存在对象,但在命令控制器中返回空。

我在两个地方使用下一个代码,Action和Command。

/**
 * postRepository
 *
 * @var \VENDOR\MyExt\Domain\Repository\PostRepository
 * @inject
 */
protected $postRepository = null;

....
....
$posts = $this->postRepository->findAll();
\TYPO3\CMS\Core\Utility\DebugUtility::debug($posts, 'posts');

调试的那一刻。在Action Controller中我得到了

  

TYPO3 \ CMS \ Extbase \ Persistence \ Generic \ QueryResultprototypeobject(5项)

在命令控制器中

  

TYPO3 \ CMS \ Extbase \ Persistence \ Generic \ QueryResultprototypeobject(empty)

在命令控制器中使用存储库的正确方法是什么?或者如何获取此对象?

我在安装工具中使用TYPO3 7.6,PHP 5.6和APC缓存,并在Server,Centos 6中配置它

1 个答案:

答案 0 :(得分:1)

我认为问题是您的命令控制器中未设置StoragePage。您可以在$query->getQuerySettings()->setRespectStoragePage(FALSE)中尝试PostRepository,或在您的扩展程序中module.tx_myext.persistence.storagePid = {$storagePid}尝试。