我正在尝试创建一个循环来显示有关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) "$10.00" ["CATEGORY.ID"]=> string(2)
"17" ["CATEGORY.name"]=> string(5) "Pants" }
}
我想循环浏览它以显示一些信息,这是我的代码(使用twig):
{% 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 %}
但它不起作用,也不会返回任何值。 在我的项目的其他部分,我做同样的工作,唯一的区别是我没有在那里加入表。
感谢您的时间。
答案 0 :(得分:0)
您可以使用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 %}