在 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 %}