【发布时间】:2016-05-06 16:00:50
【问题描述】:
我尝试将 Viewhelper 中的数组传递给 Fluidtemplate。
它总是显示字符串“Array”。如果我尝试将它用作f:for each viewhelper 中的参数,则会出现异常,因为它是字符串而不是数组。
我之前用的是 Typo3 6.2,现在我用的是 Typo3 7,它停止工作了。
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();
}
这是我的流体模板:
{namespace vh=My/Namespace/ViewHelpers}
<f:for each="{vh:GetArray(uids: '901,902,903')}">...</f:for>
【问题讨论】:
-
如果将 viewhelper 传递给 debug viewhelper 会得到什么?
-
类似的东西:'Array' String(5)
-
这意味着您的数组在被viewhelper返回之前已经被转换为字符串。
-
完全正确,我不明白为什么 - 那是我的问题
标签: arrays typo3 fluid viewhelper typo3-7.x