命令控制器中 TYPO3 extbase 存储库的 findAll() returns 空对象
The findAll() of TYPO3 extbase repository in Command Controller returns empty object
我想不时地使用命令控制器中的存储库来执行一个过程。我在动作控制器和命令控制器中注入了存储库,存在对象但在命令控制器中 returns 为空。
我在两个地方使用下一个代码,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');
以及调试的时刻。在动作控制器中我得到
TYPO3\CMS\Extbase\Persistence\Generic\QueryResultprototypeobject (5 items)
并在命令控制器中
TYPO3\CMS\Extbase\Persistence\Generic\QueryResultprototypeobject (empty)
在 Command Controller 中使用存储库的正确方法是什么,或者我怎样才能在其中获取对象?
我在安装工具中使用 TYPO3 7.6、PHP 5.6 和 APC 缓存,并在服务器、Centos 6
中进行配置
我认为问题在于您的命令控制器中未设置 StoragePage
。您可以在您的 PostRepository
中尝试 $query->getQuerySettings()->setRespectStoragePage(FALSE)
,或者在您的扩展 TS 中尝试 module.tx_myext.persistence.storagePid = {$storagePid}
。
我想不时地使用命令控制器中的存储库来执行一个过程。我在动作控制器和命令控制器中注入了存储库,存在对象但在命令控制器中 returns 为空。
我在两个地方使用下一个代码,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');
以及调试的时刻。在动作控制器中我得到
TYPO3\CMS\Extbase\Persistence\Generic\QueryResultprototypeobject (5 items)
并在命令控制器中
TYPO3\CMS\Extbase\Persistence\Generic\QueryResultprototypeobject (empty)
在 Command Controller 中使用存储库的正确方法是什么,或者我怎样才能在其中获取对象?
我在安装工具中使用 TYPO3 7.6、PHP 5.6 和 APC 缓存,并在服务器、Centos 6
中进行配置我认为问题在于您的命令控制器中未设置 StoragePage
。您可以在您的 PostRepository
中尝试 $query->getQuerySettings()->setRespectStoragePage(FALSE)
,或者在您的扩展 TS 中尝试 module.tx_myext.persistence.storagePid = {$storagePid}
。