2017-10-09 54 views
0

我想在命令控制器中使用存儲庫來執行一個程序。我在動作控制器和命令控制器中注入了存儲庫,但存在對象,但在命令控制器中返回空白。命令控制器中TYPO3 extbase存儲庫的findAll()函數返回空對象

我在兩個地方使用下一個代碼,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 \持久性\通用\ QueryResultprototypeobject(5項)

並在指令控制器

TYPO3 \ CMS \ Extbase \持久性\ Generic \ QueryResultprototypeobject(空)

在Command Controller中使用存儲庫的正確方法是什麼? ld我得到這個對象?

我使用TYPO3 7.6,PHP 5.6和APC緩存中安裝工具和服務器的配置,CentOS 6的

回答

0

我認爲這個問題是StoragePage未在指令控制器設置。您可以在您的分機TS中的PostRepositorymodule.tx_myext.persistence.storagePid = {$storagePid}中嘗試$query->getQuerySettings()->setRespectStoragePage(FALSE)

+0

謝謝!該問題已通過'$ query-> getQuerySettings() - > setRespectStoragePage(FALSE)'解決。 –