Я обращаюсь к динамическим данным из массива:
{% for key, value in columns_arr %}
{% for k,v in group %}
var {{ value }} = "{{ attribute(v, value) }}";
{% endfor %}
{% endfor %}
Это хорошо работает для name
и id
(см. Ниже).В примере name
атрибут ...
{{ attribute(v, value) }}
заменяет:
{{ v.name }}
, а в примере id
он заменяет ...
{{ v.id }}
Но это не работает с type
, потому что здесь мне действительно нужно заменить:
{{ v.type.name }}
Итак, мой вопрос, как это будет выглядеть в функции атрибута?Я попытался {{ attribute(v.name, value) }}
, но я получаю ошибку
Невозможно получить доступ к атрибуту ("тип") в строковой переменной ("ID").
group:
array:4 [▼
0 => Fields {#7444 ▼
-id: 1
-name: "ID"
-unique_id: "6ab8c870ed"
-productgroup: PersistentCollection {#7448 ▶}
-type: Type {#7525 ▼
+__isInitialized__: true
-id: 2
-name: "hidden"
-unique_id: "5e1086c862"
-label: "hidden"
…2
}
}
1 => Fields {#7526 ▶}
2 => Fields {#7530 ▶}
3 => Fields {#7534 ▶}
]
columns_arr:
array:3 [▼
0 => "id"
1 => "name"
2 => "type"
]
Мой подход к этому вопросу:
Как проверить многомерный массив Twig на значения?
{% for key, value in columns_arr %}
{% for k,v in group %}
{% for k1,v1 in v %}
var {{ value }} = "{{ attribute(name, v1) }}";
{% endfor %}
{% endfor %}
{% endfor %}
Но это дает мне ошибку, моя страница больше не загружается.
Другой подход такой:
{{ attribute(v, [value.name]) }}
Но я получаю ошибку:
Невозможно получить доступ к атрибуту («имя») в строковой переменной («тип»).