Исправлено имя массива в динамическом - PullRequest
2 голосов
/ 14 марта 2020

Я хотел бы изменить фиксированное имя массива на динамическое c имя массива. Внутри

set item_classes = [
          item.original_link.nid and item.original_link.p6 and item.original_link.in_active_trail ? 'active',
        ]

Это работает, потому что 'nid' и p6 одинаковы и уникальны.

В массиве item.original_link имеется 19 значений:

'nid' => string(3) "114" - Node ID
'bid' => string(3) "100"
'pid' => string(3) "111"
'has_children' => string(1) "0"
'weight' => string(1) "0"
'depth' => string(1) "3" - Page Depth
'p1' => string(3) "100"
'p2' => string(3) "111"
'p3' => string(3) "114" - P+Depth
'p4' => string(1) "0"
'p5' => string(1) "0"
'p6' => string(1) "0"
'p7' => string(1) "0"
'p8' => string(1) "0"
'p9' => string(1) "0"
'in_active_trail' => boolTRUE
'access' => boolTRUE
'title' => string(21) "Development.twig.html"
'options' => array(0)

Мне нужно установить значение item.original_link.p6 в значение Dynami c: 'p + глубина'.

Как в в этом примере значение будет item.original_link.p3 .

Надеюсь, я объяснил это достаточно подробно, чтобы кто-то помог или дал мне направление.

I добавили set переменную, как показано ниже:

        {% set my_var = [ ('p' ~ item.original_link.depth ), ] %}

Это дает мне необходимую динамическую переменную c, но когда я использую ее в следующем set как ниже:

        {% set item_classes = [ item.original_link.nid and item.original_link.my_var and item.original_link.in_active_trail ? 'is_active', ] %}

возвращает NULL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...