我想在命令控制器中使用存储库来不时执行一个过程。我在操作控制器和命令控制器中有存储库注入,存在对象,但在命令控制器中返回空。
我在两个地方使用下一个代码,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中配置它
答案 0 :(得分:1)
我认为问题是您的命令控制器中未设置StoragePage
。您可以在$query->getQuerySettings()->setRespectStoragePage(FALSE)
中尝试PostRepository
,或在您的扩展程序中module.tx_myext.persistence.storagePid = {$storagePid}
尝试。