私のコントローラーでは、次の変数を設定して Twig テンプレートに渡しています。
$data = $model::all(); // returns object [phpactiverecord]
$fields = getFields(); // returns associative array
私のテンプレートでは、次のようにアクセスしようとしています:
{% block rows %}
{% for row in data %}
<tr>
{% for field in fields %}
<td>{{ row[field.name] }}</td>
{% endfor %}
</tr>
{% endfor %}
{% endblock %}
このシナリオでは、$fields は次のように定義されます。
Array
(
[0] => Array
(
[name] => id
[display] => Id
)
[1] => Array
(
[name] => name
[display] => Name
)
)
$data は phpactiverecord オブジェクトの配列です。
上記の通り、row[field.name]には何も出力されません。
行[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 配列の項目)、またはいわゆる「添え字」構文 ([]) にアクセスできます。 :
これを機能させるためのアイデアはありますか?