Twig 使用“.”循环遍历数组。

Twig loop through array with "."

我正在尝试创建一个循环来显示有关我在 MYSQL 数据库中拥有的产品的信息。我正在使用 MeekroDB 并且必须执行 JOIN 查询以获取单个数组中的所有数据:

$result = DB::queryFullColumns("SELECT * FROM PRODUCT, CATEGORY WHERE product.categoryID = category.ID");
$app->render('product_list.html.twig', array('products' => $result, ));

我从操作中得到这个数组:

array(2) { [0]=> array(8) 
{ ["PRODUCT.ID"]=> string(1) "2" ["PRODUCT.categoryID"]=> string(2) 
    "17" ["PRODUCT.name"]=> string(7) "Pants 1" ["PRODUCT.description"]=> 
    string(23) "These are pants number1" ["PRODUCT.image_path"]=> string(0) 
    "" ["PRODUCT.price"]=> string(5) "10.00" ["CATEGORY.ID"]=> string(2) 
    "17" ["CATEGORY.name"]=> string(5) "Pants" } [1]=> array(8) { 
    ["PRODUCT.ID"]=> string(1) "3" ["PRODUCT.categoryID"]=> string(2) "17" 
    ["PRODUCT.name"]=> string(7) "Pants 1" ["PRODUCT.description"]=> 
    string(23) "These are pants number1" ["PRODUCT.image_path"]=> string(0) 
    "" ["PRODUCT.price"]=> string(6) ".00" ["CATEGORY.ID"]=> string(2) 
    "17" ["CATEGORY.name"]=> string(5) "Pants" }
} 

然后我想遍历它以显示一些信息,这是我的代码(使用树枝):

{% for product in products %}
    <tr><td><a href="/admin/product/edit/{{product.PRODUCT.ID}}">{{product.PRODUCT.name}}</a></td></tr>
    <tr><td id="productListTd">{{ product.PRODUCT.price }}</td></tr>
    <tr><td id="productListTd">{{ product.PRODUCT.description }}</td></tr>
    <tr><td id="productListTd">{{ product.CATEGORY.name }}</td></tr>
    <tr><td><hr></td></tr>
{% endfor %}

但它不起作用,return 没有任何价值。 在我项目的其他部分,我也这样做并且有效,唯一的区别是我不在那里加入表格。

感谢您的宝贵时间。

您可以通过使用 Twig 中的数组表示法解决此问题,如文档所述 here。在你的情况下,你所要做的就是

{% for product in products %}
    <tr><td><a href="/admin/product/edit/{{ product['PRODUCT.ID'] }}">{{product['PRODUCT.name']}}</a></td></tr>
    <tr><td id="productListTd">{{ product['PRODUCT.price'] }}</td></tr>
    <tr><td id="productListTd">{{ product['PRODUCT.description'] }}</td></tr>
    <tr><td id="productListTd">{{ product['CATEGORY.name'] }}</td></tr>
    <tr><td><hr></td></tr>
{% endfor %}