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 %}
我正在尝试创建一个循环来显示有关我在 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 %}