Typo3 Fluid:直接访问view helper返回的数组值

Typo3 Fluid:直接访问view helper返回的数组值,typo3,fluid,Typo3,Fluid,我有一个自定义的fluid ViewHelper,它返回一个数组,我想通过一个命令直接访问这个数组的值 目前我使用两个命令: {vendor:helper() -> v:variable.set(name: 'data')} Value of foo: {data.foo} 有没有一种方法可以在一个命令中实现这一点?似乎不适合此任务。这还取决于您真正想要达到的目标。如果要循环数组,应创建不同的viewhelper 如果要创建阵列,然后访问不同位置的所有数据,则需要查找f:alias流体辅

我有一个自定义的fluid ViewHelper,它返回一个数组,我想通过一个命令直接访问这个数组的值

目前我使用两个命令:

{vendor:helper() -> v:variable.set(name: 'data')}
Value of foo: {data.foo}

有没有一种方法可以在一个命令中实现这一点?似乎不适合此任务。

这还取决于您真正想要达到的目标。如果要循环数组,应创建不同的viewhelper 如果要创建阵列,然后访问不同位置的所有数据,则需要查找f:alias流体辅助对象


在最后一种情况下,如果您在helper调用后立即查看对属性的直接访问,而不再关注它,则必须使用可选值更改viewhelper。如果帮助器接收到该值,则返回元素,否则返回整个数组。get的作用完全符合您的要求:

{v:variable.get(name: 'data.{foo}')}
这将从数组数据中返回索引为{foo}的项。

如前所述,这里有

但是用法应该是
{v:variable.get(名称:'{vendor:helper()}.foo')}


如果您在模板中多次需要viewhelper的返回数组,那么最好使用您已经使用过的方法。因为否则,每次您想要再次访问先前构建的数组的索引时,您都会调用viewhelper后面的PHP方法来构建并返回数组。

您写的是您正在使用自定义viewhelper。 你能修改它吗

在ViewHelper中,您可以使用以下工具轻松指定变量:


$this->templateVariableContainer->add('variable','content')

我不知道纯流体溶液。另一种选择是:您可以给视图帮助程序提供一个附加参数,该参数获取应返回的数组的属性,因此命令如下:
{vendor:helper(property:'foo')}
。不过,这并不像纯流体溶液那样优雅。