TYPO3 - Сложное состояние жидкости f: если не работает в 8.7 - PullRequest
0 голосов
/ 05 июля 2018

Я попробовал сложный f: если условие в 8.7, как описано здесь: https://docs.typo3.org/typo3cms/ExtbaseGuide/Fluid/ViewHelper/If.html

... но все мои попытки потерпели неудачу (не работает):

<h3 class="record-title" id="title"><f:if condition="{record.type}!='medium' || {record.type}!='large'">{record.firstname} - </f:if>{record.name}</h3>
<h3 class="record-title" id="title"><f:if condition="{0:record.type,1:record.type}!={0:medium,1:large}">{record.firstname} - </f:if>{record.name}</h3>
<h3 class="record-title" id="title"><f:if condition="{0:record.type,1:record.type}!={0:'medium',1:'large'}">{record.firstname} - </f:if>{record.name}</h3>

... вместо этого мне нужно сделать это (работает):

<h3 class="record-title" id="title">
    <f:if condition="{record.type}!='medium'">
        <f:if condition="{record.type}!='large'">
            {record.firstname} - 
        </f:if>
    </f:if>
    {record.name}
</h3>

Почему это не работает, как описано? Я работаю с 8.7.16 ...

1 Ответ

0 голосов
/ 05 июля 2018

Ваше первое условие работает правильно, но оно не совпадает с примером, который работает для вас, как, например, вложенный <f:if> работает как &&, тогда как ваше первое условие использует ||.

Во втором условии отсутствуют кавычки.

Третий всегда вернет true, потому что вы сравниваете что-то вроде ['X', 'X'] с ['medium', 'large']. Если X == 'medium', то X != 'large' - другого пути нет.

Чтобы это заработало, вам просто нужно изменить || на && при первом условии.

<h3 class="record-title" id="title">
    <f:if condition="{record.type}!='medium' && {record.type}!='large'">{record.firstname} - </f:if>
    {record.name}
</h3>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...