2012-04-23 6 views
5

テンプレート内の変数にアクセスし、小枝テンプレートに渡す:私のテンプレートでPHP&小枝:トラブル私は、次の変数を設定しています私のコントローラで

$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 %} 

、$フィールドは次のように定義される。

​​3210

と$データはアレイでありますphpactiverecordオブジェクト。


上記のように、[field.name]行には何も出力されません。 Twig siteによると

row.name  -> outputs Value I would expect from row[field.name] 
field.name  -> outputs "name" 
row['name']  -> outputs nothing 
row[field.name] -> outputs nothing 

:ここ

は、私は、行[field.name]を変更した場合、私が見る結果であるあなたは、ドットを使用することができ、変数の属性にアクセスするために((。)メソッドやプロパティPHPオブジェクトの、またはPHP配列の項目)、またはいわゆる「添字」構文([]):

これが動作するようになって上の任意のアイデア?あなたは上の動的な属性を取得したい場合は

答えて

4

バージョン1.2以降を使用している場合は、attribute機能

{{ attribute(row, field.name) }} 

それはさえpage you linked toに言及しています...

を試してみてください変数の代わりに属性関数を使用します。

+0

それが修正されました - ありがとう! – sonicradish