[英]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>
如果在PHP中我休息一下,我需要2個條件。 謝謝
您可以使用擴展名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,而這只是幾行代碼。
如果堆棧Viewhelper,也可以使用vhs:
<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>
如果只想避免2個類似的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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.