Не работает условно при переводе php в веточку - PullRequest
0 голосов
/ 11 мая 2018

Я перевожу шаблоны drupal 7 в drupal 8, у меня есть переменная, которая содержит тип страницы, отображаемой в узле, в php это сравнение использовало == в качестве оператора и литерал типа int в качестве второго аргумента, переменная content ['field_tipo'] [0] выводит 5, но я думаю, что это поле сущности, поэтому тип данных неверно сравнивать с типом int или строкой. Есть ли какая-либо функция, способная анализировать поле entity.field для строка или int?

{%if ...%}
{%elseif ...%}
{%elseif content['field_tipo'][0] == 5 %}
            {%if video%}
                <div class="tipo1">
            {%else%}
                    <div class="tipo2">
            {%endif%}
                        <div class="">
                            <div class="">
                                <h3>{{content['field_'][0]}}</h3>   
                                <h1>{{title}}</h1>
                            </div>
                            <div class="">
                                <h4>{{content['field_'][0]}}</h4>
                            </div>
                            <div class="">
                                <h4>{{content['body']}}</h4>
                            </div>
                            </div>                  
                    </div>--><!-- fin #box_tipo -->
    {%else%}
        <h1>{{content['field_tipo'][0]}}</h1><!--entro aqui y displayeo 5-->
    {%endif%}

1 Ответ

0 голосов
/ 14 мая 2018

Вы можете сравнить его с простым заключением 5 в кавычку, так что

{%elseif content['field_tipo'][0] == "5" %}

но я думаю вы должны использовать свойство value этого, что-то вроде

{%elseif content.field_tipo[0].value == "5" %}

ИЛИ

{%elseif node.field_tipo[0].value == "5" %}
...