【问题标题】:Access dynamic object property in Typo3 Fluid template访问 Typo3 Fluid 模板中的动态对象属性
【发布时间】:2013-06-19 08:15:26
【问题描述】:

我在 Typo3 Fluid 模板中有一个对象,想访问其上的属性,但该属性的名称在变量 someProperty 中:

<f:if condition="searchObject.{someProperty}">
        Found!
</f:if>

因为这不起作用:是否有内置方法可以通过变量访问属性?

【问题讨论】:

    标签: typo3 fluid


    【解决方案1】:

    您可以给fedex Fluid viewhelper collection 及其v:var.get 视图助手一个机会。

    或查看此处的其他视图助手。如果您没有找到合适的,您可以根据此处的一些示例为此功能编写自己的。

    更新:

    由于这是 TYPO3 6.2 的一个老问题,是时候将其更新为当前标准了。 (另请参阅 Claus Due 的回答:

    对于当前的 LTS:TYPO3 9.5,可以使用 simple:

    {searchObject.{someProperty}}
    

    【讨论】:

    • 所以没有内置任何东西?
    • 我不认为有什么。 Fluid 的核心有一个基本的工作,但它有很多扩展。就像上面那个。
    • 我在某处读到嵌套变量访问是 TYPO3 v9 中的一项功能。使用低于 v9 的 Fluid 或至少只有低级支持是不可能的。您必须使用 `EXT:vhs'。
    【解决方案2】:

    在 Fluid 独立版和 TYPO3v8 及更高版本中:

    {array.{variableContainingKey}}.

    【讨论】:

      【解决方案3】:

      点符号实际上是访问属性的正确方法。你说的动态是什么意思?可以为空吗?您是否尝试过以下方法?

      <f:if condition="<f:count>{searchObject.someProperty}</f:count>">
          Found!
      </f:if>
      

      或者只是:

      <f:if condition="{searchObject.someProperty}">
          Found!
      </f:if>
      

      【讨论】:

      • 我认为问题是关于动态属性读取。因此,假设代码需要检查,对象是否具有 XYZ 属性。因此,在这种情况下,{someProperty} 是一个变量,可以有不同的值:XYZ、ZYX、YYY 等等。没那么简单。
      • 哦,好的,知道了!不能用控制器中的属性名解析变量吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-10
      • 1970-01-01
      • 2013-07-21
      • 1970-01-01
      • 2016-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多