Arrays “第三类退货”;数组";流淌
我尝试将Viewhelper中的数组传递给Fluidtemplate。 它总是显示字符串“Array”。如果我尝试在Arrays “第三类退货”;数组";流淌,arrays,typo3,fluid,viewhelper,typo3-7.x,Arrays,Typo3,Fluid,Viewhelper,Typo3 7.x,我尝试将Viewhelper中的数组传递给Fluidtemplate。 它总是显示字符串“Array”。如果我尝试在f:for eachviewhelper中使用它作为参数,我会得到一个异常,因为它是一个字符串而不是数组。 我以前用过Typo3 6.2,现在我用了Typo3 7,它停止工作了 public function render($uids) { // $uids='901,902,903' $uidArray = explode(',', $uids); $objec
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>
{namespace vh=My/namespace/ViewHelpers}
...
在流体模板中尝试组合使用f:for
和f:cycle
。请参见流体ViewHelper参考中的。您不能使用ViewHelper返回数组,因为ViewHelper始终返回字符串
但是,可以将新变量引入当前渲染上下文,然后在viewhelper中使用此变量
公共函数render(){
$returnArray=array('a'=>17,'b'=>42);
$this->templateVariableContainer->add('returnArray',$returnArray);
$output=$this->renderChildren();
$this->templateVariableContainer->remove('returnArray');
返回$output;
}
在模板内部,您可以在
{returnArray}
上运行for循环,但这不起作用,因为我无法使用需要数组作为参数的viewhelper。我的viewhelper的返回值是一个字符串而不是数组。如果将viewhelper传递给调试viewhelper,会得到什么?类似这样的:“数组”字符串(5)表示数组在被viewhelper返回之前已经被强制转换为字符串。确切地说,我不明白为什么-这是我的问题此方法有效,谢谢!只是不明白他们为什么要这样改变。可以将阵列直接返回到流体中