在 Twig 中使用两个数据库查询进行循环
For loop with two database queries in Twig
如果有人能提供帮助,我真的很乐意,我正在尝试找出一种在 Twig 中循环执行两个查询的方法。我可以在 PHP 中创建它,但我在 Twig 上做同样的事情。这就是我通常在 PHP:
上的做法
foreach($items as $item){
$product_id = $item;
$products = $app->db->table('products')->where('id', $product_id)->first();
echo "<li>" . $products->title . "</li>";
}
上面的代码可以正常工作,但在 Twig 上它不会循环到下一个循环,但它会继续循环同样的事情。
如果您知道我如何像上面那样使用 Twig for 循环,请提供帮助。我在 Slim 中使用 Laravel Eloquent 查询它。
这就是我所做的:
控制器
$products = $app->db->table('products')->where('trash', '0')->first();
景色
{% for item in items %}
{% set product_id = item.id %}
<li> {{ products.title }}</li>
{% endfor %}
它只会显示第一行并重复相同的内容。
不要尝试 运行 从模板查询。在控制器中执行并将结果传递给模板。
此外 $items
似乎是一个 ID 数组,因此您应该能够使用 where-in 条件(而不是多个查询)一次加载所有产品:
控制器:
$products = $app->db->table('products')->whereIn('id', $items)->get();
// pass $products to the template as "products"
Twig 模板:
{% for product in products %}
<li>{{ product.title }}</li>
{% endfor %}
如果有人能提供帮助,我真的很乐意,我正在尝试找出一种在 Twig 中循环执行两个查询的方法。我可以在 PHP 中创建它,但我在 Twig 上做同样的事情。这就是我通常在 PHP:
上的做法foreach($items as $item){
$product_id = $item;
$products = $app->db->table('products')->where('id', $product_id)->first();
echo "<li>" . $products->title . "</li>";
}
上面的代码可以正常工作,但在 Twig 上它不会循环到下一个循环,但它会继续循环同样的事情。 如果您知道我如何像上面那样使用 Twig for 循环,请提供帮助。我在 Slim 中使用 Laravel Eloquent 查询它。
这就是我所做的:
控制器
$products = $app->db->table('products')->where('trash', '0')->first();
景色
{% for item in items %}
{% set product_id = item.id %}
<li> {{ products.title }}</li>
{% endfor %}
它只会显示第一行并重复相同的内容。
不要尝试 运行 从模板查询。在控制器中执行并将结果传递给模板。
此外 $items
似乎是一个 ID 数组,因此您应该能够使用 where-in 条件(而不是多个查询)一次加载所有产品:
控制器:
$products = $app->db->table('products')->whereIn('id', $items)->get();
// pass $products to the template as "products"
Twig 模板:
{% for product in products %}
<li>{{ product.title }}</li>
{% endfor %}