1237900529:参数“each”已注册为类型“array”,但在视图帮助程序“TYPO3\CMS\Fluid\ViewHelpers\ForViewHelper”中为类型“string”

1237900529:参数“each”已注册为类型“array”,但在视图帮助程序“TYPO3\CMS\Fluid\ViewHelpers\ForViewHelper”中为类型“string”,typo3,typoscript,fluid,typo3-6.2.x,Typo3,Typoscript,Fluid,Typo3 6.2.x,我收到以下错误消息1237900529:每个参数都是使用类型数组注册的,但在view helper TYPO3\CMS\Fluid\ViewHelpers\ForViewHelper中是字符串类型,同时尝试使用以下FLUIDTEMPLATE FT迭代遍历我的数据行: <h2>Sources</h2> <f:for each="{content_source}" as="source"> <p>{source.header}</p>

我收到以下错误消息1237900529:每个参数都是使用类型数组注册的,但在view helper TYPO3\CMS\Fluid\ViewHelpers\ForViewHelper中是字符串类型,同时尝试使用以下FLUIDTEMPLATE FT迭代遍历我的数据行:

<h2>Sources</h2>
<f:for each="{content_source}" as="source">
    <p>{source.header}</p>
</f:for>

<h2>Contact</h2>
<f:for each="{content_contact}" as="contact">
    <p>{contact.header}</p>
</f:for>
我正在运行Typo3 6.2.14,并希望解析此HTML以与自定义构建模板中的BootStrap架构相匹配。我没有太多关于打字字体的知识&FT;然而,对于我来说,最好使用FT-over-TypoScript来为html解析创造条件。如果我有以下打字稿,我应该调整什么:

10 = FLUIDTEMPLATE
10{
    file= fileadmin/Templates/index.html
    layoutRootPath = fileadmin/Templates/layouts/
    partialRootPath = fileadmin/Templates/partials/
    variables {
        content_source < styles.content.get
        content_source.select.where = colPos=3
        content_contact < styles.content.get
        content_contact.select.where = colPos=4
    }
}

对于后代来说,由于这个问题由来已久,而且可能已经解决:

当您以这种方式使用打字脚本中的变量时,您将获得呈现内容的字符串,而不是内容记录数组或呈现内容HTML字符串数组。因此,错误是正确的

根据内容元素的类型,为呈现内容的HTML输出设置样式通常有两条主要途径:

如果使用css样式的内容,请更改TS包装等;如果使用流体样式的内容,请覆盖要更改的模板。 对于使用FLUIDTEMPLATE TS对象或Extbase MVC的所有内容类型和插件,覆盖要更改的模板。
最后,您可以在Fluid中使用第三方ViewHelper来获取原始内容记录并对其进行渲染,这将允许您将包装等应用于内容元素,作为Fluid模板的一部分。请参阅和v:content.render-parameter。

您到底想要实现什么?style.content.get始终呈现受查询影响的内容元素,请参见,因此会显示错误,因为您试图迭代字符串而不是数组。@derhansen我希望使用FluidTemplate中所需的html标记封装返回的值。然后,我还可以使用FluidTemplate提供的条件和比较函数来更好地控制html标记。是否有可能将此值作为数组而不是字符串获取?或者你可能有更好的选择来建议我。我不知道是否有可能将内容元素作为数组添加到流体模板中。我通常在你试图解决问题的方式中看到一些问题。您越自定义内容元素,模板就会变得非常复杂。我认为最好通过打字脚本控制TYPO3内容元素的HTML结构,例如添加额外的框架我必须硬编码打字脚本文件中的所有HTML标记吗