使用IF& ELSE在Drupal中

时间:2017-05-10 02:22:47

标签: drupal twig drupal-modules drupal-8

我有一个树枝模板,我根据人的类型显示某些细节 但条件不起作用,我只是想知道IF条款有什么问题?

{% if field_person_type == 'XXXXXXX' %}{{ (content.field_position) }}, {{ (content.field_unit) }}
{% else %} {{ (content.field_position) }}, {{ (content.field_institution) }} {% endif %}

content定义如下

Position    field_position      Text            Text field  
Person Type field_person_type   Term reference  Check boxes/radio buttons
Unit        field_unit          Text            Text field  
Institution field_institution   Term reference  Check boxes/radio buttons

当我使用dump(field_person_type)时,它会显示以下内容

ARRAY(1) { 
    [0]=> ARRAY(2) { 
        ["TID"]=> STRING(2) "40"
        ["TAXONOMY_TERM"]=> OBJECT(STDCLASS)#179 (8) { 
            ["TID"]=> STRING(2) "40" 
            ["VID"]=> STRING(1) "5"
            ["NAME"]=> STRING(7) "XXXXXXX" 
            ["DESCRIPTION"]=> STRING(0) "" 
            ["FORMAT"]=> STRING(2) "21" 
            ["WEIGHT"]=> STRING(1) "2" 
            ["VOCABULARY_MACHINE_NAME"]=> STRING(11) "PERSON_TYPE"
            ["PATH"]=> ARRAY(1) { 
                ["PATHAUTO"]=> STRING(1) "1" 
            }
        } 
    } 
}

2 个答案:

答案 0 :(得分:1)

试试这个field_person_type.0.taxonomy_term.name

答案 1 :(得分:0)

Twig无法神奇地访问该名称,您必须像访问数组一样访问它。

如转储所述:您的字段(field_person_type)是一个数组。你有[0]里面也是一个有2个条目的数组。里面的“TAXONOMY_TERM”是一个对象,因此应该作为对象访问。

以下内容应该为您提供结果

field_person_type[0]["TAXONOMY_TERM"].NAME