TYPO3 returns "Array" 到 Fluid as String
TYPO3 returns "Array" to Fluid as String
我尝试将我的 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>
尝试在流体模板中组合使用 f:for
和 f:cycle
。请参阅 Fluid ViewHelper 参考中的 f:cycle examples。
你不能 return 你的 viewhelper 的数组,因为 viewhelper 总是 return 字符串。
然而,您可以将一个新变量引入当前渲染上下文,然后在您的 viewhelper 中使用该变量。
public function render() {
$returnArray = array('a' => 17, 'b' => 42);
$this->templateVariableContainer->add('returnArray', $returnArray);
$output = $this->renderChildren();
$this->templateVariableContainer->remove('returnArray');
return $output;
}
在您的模板中,您可以 运行 在 {returnArray}
.
上进行 for 循环
我尝试将我的 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>
尝试在流体模板中组合使用 f:for
和 f:cycle
。请参阅 Fluid ViewHelper 参考中的 f:cycle examples。
你不能 return 你的 viewhelper 的数组,因为 viewhelper 总是 return 字符串。
然而,您可以将一个新变量引入当前渲染上下文,然后在您的 viewhelper 中使用该变量。
public function render() {
$returnArray = array('a' => 17, 'b' => 42);
$this->templateVariableContainer->add('returnArray', $returnArray);
$output = $this->renderChildren();
$this->templateVariableContainer->remove('returnArray');
return $output;
}
在您的模板中,您可以 运行 在 {returnArray}
.