Fluid:直接访问视图助手返回的数组值
Fluid: Directly access value of array returned by view helper
我有自定义的流体 ViewHelper returns 一个数组,我想直接在一个命令中访问这个数组的值。
目前我正在使用两个命令:
{vendor:helper() -> v:variable.set(name: 'data')}
Value of foo: {data.foo}
有没有一种方法可以在一条命令中做到这一点? v:variable.get
似乎不适合这个任务。
这还取决于您真正想要达到的目标。如果你想循环数组,你应该创建一个不同的viewhelper
如果你想创建数组,然后访问不同位置的所有数据,你正在寻找 f:alias 流体助手
在最后一种情况下,您会在 helper 调用后立即看到 属性 的直接访问,而没有更多关于它的信息,您必须使用可选值更改 viewhelper。如果助手收到值,你 return 元素,否则它 return 是整个数组
v:variable.get
of VHS viewhelpers 完全符合您的要求:
{v:variable.get(name: 'data.{foo}')}
这 returns 数组数据中索引为 {foo} 的项目。
如 said, there is the VHS Variable / GetViewHelper.
但是用法应该是{v:variable.get(name: '{vendor:helper()}.foo')}
.
如果您在模板中多次需要 returned 的 viewhelper 数组,最好按照您已经使用的方式使用它。因为否则你会在 viewhelper 后面调用 PHP 方法来构建和 return 数组,每次你想再次访问之前已经构建的数组的索引时。
您写道您正在使用自定义 ViewHelper。
可以修改吗?
在 ViewHelper 中,您可以轻松地分配一个变量:
$this->templateVariableContainer->add('variable', 'content');
我有自定义的流体 ViewHelper returns 一个数组,我想直接在一个命令中访问这个数组的值。
目前我正在使用两个命令:
{vendor:helper() -> v:variable.set(name: 'data')}
Value of foo: {data.foo}
有没有一种方法可以在一条命令中做到这一点? v:variable.get
似乎不适合这个任务。
这还取决于您真正想要达到的目标。如果你想循环数组,你应该创建一个不同的viewhelper 如果你想创建数组,然后访问不同位置的所有数据,你正在寻找 f:alias 流体助手
在最后一种情况下,您会在 helper 调用后立即看到 属性 的直接访问,而没有更多关于它的信息,您必须使用可选值更改 viewhelper。如果助手收到值,你 return 元素,否则它 return 是整个数组
v:variable.get
of VHS viewhelpers 完全符合您的要求:
{v:variable.get(name: 'data.{foo}')}
这 returns 数组数据中索引为 {foo} 的项目。
如
但是用法应该是{v:variable.get(name: '{vendor:helper()}.foo')}
.
如果您在模板中多次需要 returned 的 viewhelper 数组,最好按照您已经使用的方式使用它。因为否则你会在 viewhelper 后面调用 PHP 方法来构建和 return 数组,每次你想再次访问之前已经构建的数组的索引时。
您写道您正在使用自定义 ViewHelper。 可以修改吗?
在 ViewHelper 中,您可以轻松地分配一个变量:
$this->templateVariableContainer->add('variable', 'content');