Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typo3 类型3流体一次两个条件?_Typo3_Fluid_Typo3 7.6.x - Fatal编程技术网

Typo3 类型3流体一次两个条件?

Typo3 类型3流体一次两个条件?,typo3,fluid,typo3-7.6.x,Typo3,Fluid,Typo3 7.6.x,我对每两种情况都有一种解释。如何清除内容?不需要两个内容: <f:for each="{newsItem.categories}" as="category"> <f:if condition="{category.uid} == 2"> <f:if condition="{newsItem.logo}"> Logo 1 </f:if> </f:if> &l

我对每两种情况都有一种解释。如何清除内容?不需要两个内容:

<f:for each="{newsItem.categories}" as="category">
    <f:if condition="{category.uid} == 2">
        <f:if condition="{newsItem.logo}">
            Logo 1
        </f:if>
    </f:if>
    <f:if condition="{category.uid} == 3">
        <f:if condition="{newsItem.logo}">
            Logo 1
        </f:if>
    </f:if>
</f:for>

标志1
标志1
我需要2个if的一个条件 在PHP中我休息一下?
谢谢

您可以使用ViewHelpers
v:iterator.intersect
v:iterator.extract
从分机
vhs
中提取。它不是很优雅:

<f:if condition="{newsItem.categories -> v:iterator.extract(key: 'uid') -> iterator.intersect(b: '{0: 2, 1: 3}')}">
    <f:if condition="{newsItem.logo}">
        Logo 1
    </f:if>
</f:if>

标志1

或者,您也可以编写自己的ViewHelper,只需几行代码。

您可以使用ViewHelper
v:iterator.intersect
v:iterator.extract
从扩展名
vhs
中。它不是很优雅:

<f:if condition="{newsItem.categories -> v:iterator.extract(key: 'uid') -> iterator.intersect(b: '{0: 2, 1: 3}')}">
    <f:if condition="{newsItem.logo}">
        Logo 1
    </f:if>
</f:if>

标志1

或者,您也可以编写自己的ViewHelper,只需几行代码。

如果堆栈ViewHelper:

<v:if stack="{0: '{category.uid}', 1: '==', 2: '2', 3: 'OR', 4: '{category.uid}', 5: '==', 6: '3'}">
    <f:then>
        <f:if condition="{newsItem.logo}">
            Logo 1
        </f:if>
    </f:then>
</v:if>

标志1

如果堆栈视图助手:

<v:if stack="{0: '{category.uid}', 1: '==', 2: '2', 3: 'OR', 4: '{category.uid}', 5: '==', 6: '3'}">
    <f:then>
        <f:if condition="{newsItem.logo}">
            Logo 1
        </f:if>
    </f:then>
</v:if>

标志1

如果您只想避免两个类似的HTML块,那么可以使用f:render和f:section:

<f:for each="{newsItem.categories}" as="category">
<f:if condition="{category.uid} == 2">
    <f:render section="logo" arguments="{newsItem:newsItem}" />
</f:if>
<f:if condition="{category.uid} == 3">
    <f:render section="logo" arguments="{newsItem:newsItem}" />
</f:if>
</f:for>

<f:section name="logo">
    <f:if condition="{newsItem.logo}">
            Logo 1
    </f:if>
</f:section>

标志1

如果您只想避免两个类似的HTML块,那么可以使用f:render和f:section:

<f:for each="{newsItem.categories}" as="category">
<f:if condition="{category.uid} == 2">
    <f:render section="logo" arguments="{newsItem:newsItem}" />
</f:if>
<f:if condition="{category.uid} == 3">
    <f:render section="logo" arguments="{newsItem:newsItem}" />
</f:if>
</f:for>

<f:section name="logo">
    <f:if condition="{newsItem.logo}">
            Logo 1
    </f:if>
</f:section>

标志1

它是自己的扩展还是现有的?sys\u cats和不喜欢相同的输出我知道哪个表,只是问上面的视图是来自您自己的扩展还是来自某个现有的扩展(即新闻)?它是自己的扩展还是现有的?sys\u cats和不喜欢相同的输出我知道哪个表,只需询问上述视图是来自您自己的扩展还是来自某个现有的扩展(即新闻)?然后您可以开始使用它(它没有依赖项并且很有用),或者编写您自己的ViewHelper。然后您可以开始使用它(它没有依赖项并且很有用),或者编写您自己的ViewHelper。因为如果ViewHelper不支持逻辑条件-我会说是的,我使用这种方式,完美!谢谢因为流体如果viewhelper不支持逻辑条件-我想说是的,我用这种方式,完美!谢谢