TYPO3 FLUID 两个条件合二为一?
TYPO3 FLUID two condition in one foreach?
我有两个条件。我怎样才能清除内容?不需要两个内容:
<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>
我需要 2 个 if's 的一个条件
在PHP我休息一下?
谢谢
您可以使用扩展 vhs
中的 ViewHelpers v:iterator.intersect
和 v:iterator.extract
。这不是很优雅:
<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>
或者,您可以只编写自己的 ViewHelper,只需几行代码。
你也可以使用 vhs if stack 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>
如果你只想避免 HTML 的 2 个相似块,那么你可以使用 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>
我有两个条件。我怎样才能清除内容?不需要两个内容:
<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>
我需要 2 个 if's 的一个条件 在PHP我休息一下? 谢谢
您可以使用扩展 vhs
中的 ViewHelpers v:iterator.intersect
和 v:iterator.extract
。这不是很优雅:
<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>
或者,您可以只编写自己的 ViewHelper,只需几行代码。
你也可以使用 vhs if stack 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>
如果你只想避免 HTML 的 2 个相似块,那么你可以使用 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>