1

如果有人可以提供帮助,我真的很高兴,我正在尝试找出一种方法来循环遍历 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 %} 

它只会显示第一行并重复同样的事情。

4

1 回答 1

1

不要尝试从模板运行查询。在控制器中执行此操作并将结果传递给模板。

$items似乎是一个 ID 数组,因此您应该能够使用 where-in 条件(而不是多个查询)一次加载所有产品:

控制器:

$products = $app->db->table('products')->whereIn('id', $items)->get();

// pass $products to the template as "products"

树枝模板:

{% for product in products %}
    <li>{{ product.title }}</li>
{% endfor %}
于 2016-06-18T00:31:42.067 回答