2012-04-23 65 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]。

下面是結果我看看,如果我改變行[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 site:你可以用一個點來訪問變量的屬性((。) PHP對象的方法或屬性,或者PHP數組的項),或者所謂的「下標」語法([]):

任何關於使其工作的想法?

回答

4

如果您使用1.2或更高版本,嘗試attribute功能

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

它甚至在page you linked to提到...

如果你想獲得一個動態屬性變量,而是使用屬性函數。

+0

修復它 - 謝謝! – sonicradish 2012-04-24 17:50:49