2017-10-09 5 views
0

Je souhaite utiliser le référentiel dans le contrôleur de commande pour exécuter une procédure de temps en temps. J'ai le référentiel injecter dans le contrôleur d'action et le contrôleur de commande, il existe des objets mais dans le contrôleur de commande retourne vide. J'utilise le code suivant à deux endroits, Action et Command.Le findAll() du référentiel de base de données TYPO3 dans Command Controller renvoie l'objet vide

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

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

Et le moment de débogage. Dans Action Controller je reçois

TYPO3 \ CMS \ Extbase \ persistance \ Generic \ QueryResultprototypeobject (5 articles)

Et dans le contrôleur de commande

TYPO3 \ CMS \ Extbase \ persistance \ Générique \ QueryResultprototypeobject (vide)

Quelle est la bonne façon d'utiliser les référentiels dans Command Controller ou comment Je trouve les objets dans ça?

J'utilise TYPO3 7.6, PHP 5.6 et cache APC dans Installer les outils et le configurer dans le serveur, CentOS 6

Répondre

0

Je pense que le problème est le StoragePage n'est pas réglé dans votre contrôleur de commande. Vous pouvez essayer $query->getQuerySettings()->setRespectStoragePage(FALSE) dans votre PostRepository, ou module.tx_myext.persistence.storagePid = {$storagePid} dans votre extension TS.

+0

Merci! Le problème a été résolu avec '$ query-> getQuerySettings() -> setRespectStoragePage (FALSE)'. –