You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TYPO3 v11.5.41中如何向FLUIDTEMPLATE传递嵌套变量?

在TYPO3 v11.5.x中向Fluid传递嵌套变量的正确方式

直接在FLUIDTEMPLATE.variables下嵌套TypoScript对象的写法无法生效,因为该配置下的每个变量默认会被解析为内容对象(如TEXT/COA),而非可被Fluid识别的嵌套数组。以下是两种可行的解决方法:

方法1:使用ARRAY内容对象构建嵌套结构

通过ARRAY类型的内容对象,将嵌套的属性封装成数组传递给Fluid:

page {
    10 = FLUIDTEMPLATE
    10 {
        variables {
            # 用ARRAY定义嵌套变量
            validNested = ARRAY
            validNested {
                headline = TEXT
                headline.value = Foo
                subTitle = TEXT
                subTitle.value = 这是嵌套的副标题
            }
        }
    }
}

在Fluid模板中即可通过点语法访问:

<h1>{validNested.headline}</h1>
<p>{validNested.subTitle}</p>

方法2:结合stdWrap.cObject实现嵌套

如果需要对嵌套结构做更灵活的处理(比如动态生成内容),可以用stdWrap.cObject来封装数组:

page {
    10 = FLUIDTEMPLATE
    10 {
        variables {
            dynamicNested = TEXT
            dynamicNested {
                stdWrap.cObject = ARRAY
                stdWrap.cObject {
                    title = TEXT
                    title.value = 动态生成的标题
                    content = TEXT
                    content.value = 这是嵌套的内容文本
                }
            }
        }
    }
}

Fluid中调用方式:

<h2>{dynamicNested.title}</h2>
<p>{dynamicNested.content}</p>

为什么原写法失效?

你之前尝试的doesnotwork { headline = TEXT... }写法,TypoScript会将doesnotwork视为一个未正确配置的内容对象,而非数组结构,因此Fluid无法识别其中的headline属性。必须通过ARRAY明确声明这是一个嵌套数组,才能让TypoScript正确传递给Fluid。

内容的提问来源于stack exchange,提问作者cweiske

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 14:50:09