簡體   English   中英

PHP&Twig:無法訪問模板中的變量

[英]PHP & Twig : Trouble accessing variables in template

在我的控制器中,我設置以下變量並將它們傳遞給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]沒有輸出任何內容。

如果我更改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數組的項),或所謂的“下標”語法([]) :

有什么想法讓這個工作?

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

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

它甚至在您鏈接到頁面上提到...

如果要獲取變量的動態屬性,請改用屬性函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM