Я пытаюсь передать массив в моем Viewhelper на Fluidtemplate. Он всегда показывает строку «Массив». Если я попытаюсь использовать его как параметр в режиме просмотра f:for each
, я получаю исключение, потому что это строка, а не массив. Я использовал Typo3 6.2 раньше, теперь у меня есть Typo3 7, и он перестает работать.TYPO3 возвращает «Array» в Fluid as String
public function render($uids) { // $uids='901,902,903'
$uidArray = explode(',', $uids);
$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
$repository = $objectManager->get('XXX\\X\\Domain\\Repository\\FooRepository');
$query = $repository->createQuery();
$query->getQuerySettings()->setRespectStoragePage(FALSE);
$query->matching(
$query->in('uid', $uidArray)
);
return $query->execute()->toArray();
}
Это мой Fluid шаблон:
{namespace vh=My/Namespace/ViewHelpers}
<f:for each="{vh:GetArray(uids: '901,902,903')}">...</f:for>
Что вы получаете, если передаете свой взгляд на отладочный режим? – pgampe
Что-то вроде этого: 'Array' String (5) – ellei
Это означает, что ваш массив уже отправлен в строку перед возвратом viewhelper. – pgampe