В моем контроллере я устанавливаю следующие переменные и передаю их в шаблон Twig:
$data = $model::all(); // returns object [phpactiverecord]
$fields = getFields(); // returns associative array
В моем шаблоне я пытаюсь получить к ним доступ следующим образом:
{% block rows %}
{% for row in data %}
{% for field in fields %}
{{ row[field.name] }}
{% endfor %}
{% endfor %}
{% endblock %}
В этом сценарии $fields определяется как :
Array
(
[0] => Array
(
[name] => id
[display] => Id
)
[1] => Array
(
[name] => name
[display] => Name
)
)
, а $data — это массив объектов phpactiverecord.
Как написано выше, для row[field.name] ничего не выводится.
Вот результаты, которые я увижу, если изменю row[field.name]:
row.name -> outputs Value I would expect from row[field.name]
field.name -> outputs "name"
row['name'] -> outputs nothing
row[field.name] -> outputs nothing
Согласно сайту Twig:Вы можете использовать точку (. )для доступа к атрибутам переменной (методы или свойства объекта PHP или элементы массива PHP )или так -называемый синтаксис «индекс»([] ):
Любые идеи о том, как это сделать Работа?