Typo3 循环中的流体访问其他阵列

Typo3 循环中的流体访问其他阵列,typo3,fluid,extbase,Typo3,Fluid,Extbase,我必须这样做: $business = array(0 => 'Car', 1 => 'IT'); $counts = array(0 => 15, 1 => 33); 我在流体模板中分配这两个数组,并迭代数组业务 <f:for each="{business}" as="b" key="key"> <li> <f:link.action action="business" arguments="{current

我必须这样做:

$business = array(0 => 'Car', 1 => 'IT');
$counts   = array(0 => 15, 1 => 33);
我在流体模板中分配这两个数组,并迭代数组业务

<f:for each="{business}" as="b" key="key">
    <li>
        <f:link.action action="business" arguments="{current_business: b.uid}">
            <f:if condition="{counts.key} > 0">
                <f:then>
                    {b.title} {counts.key}
                </f:then>
                <f:else>
                    {b.title}
                </f:else>
             </f:if>
        </f:link.action>
    </li>
</f:for>

  • {b.title}{counts.key} {b.title}

  • 我没有得到
    {counts.key}
    的输出,我是否应该以其他方式访问它?

    这可以使用扩展中的。不要使用
    {counts.key}

    {v:variable.get(name: 'counts.{key}')}
    


    当然,你可以像Jost所说的那样在视图中操作数据,这是完全有效的,另一方面,将控制器中的数组组合成关联数组可能会更舒服,比如:

    $business = array(
        0 => array('title' => 'Car', 'count' => '15'),
        1 => array('title' => 'IT', 'count' => '33'),
    );
    
    看法

    
    
  • {b.title}({b.count}) {b.title}(无项目)
  • 注意:如果在实际情况下,这是一个模型对象集合,您只需将
    transient
    -
    count
    字段添加到您的模型中,而无需TCA和SQL声明,在这种情况下,您将能够“动态”设置值在控制器内的该字段上,将它们用作视图中的公共模型字段,但它们不会保存到DB

    $business = array(
        0 => array('title' => 'Car', 'count' => '15'),
        1 => array('title' => 'IT', 'count' => '33'),
    );
    
    <f:for each="{business}" as="b">
        <li>
            <f:link.action action="business" arguments="{current_business: b.uid}">
                <f:if condition="{b.count} > 0">
                    <f:then>
                        {b.title} ({b.count})
                    </f:then>
                    <f:else>
                        {b.title} (no items)
                    </f:else>
                 </f:if>
            </f:link.action>
        </li>
    </f:for>