Twigでエンティティオブジェクトにアクセスする際の注意点
Twigテンプレート内でエンティティオブジェクトにアクセスする際にforで回しながら処理したかったんですが、エラーが出て見事に少しハマった。
下記のようにtypesに入っている値を利用して、エンティティオブジェクトにアクセスするとエラーが出る。
{% for type in types %} {% set column = type ~ 'Status' %} {{ entity[column] }} {% endfor %}
Twigのドキュメントを読んでみたところ、attribute関数というものを発見した。
http://twig.sensiolabs.org/doc/templates.html#variables
attribute関数を使って試してみるとうまくいった。
{% for type in types %} {% set column = type ~ 'Status' %} {{ attribute(entity, column) }} {% endfor %}
なぜこれで動くのかは不明なのでattribute関数の中身を後で読んでみる。