在Twig中有什么好的方法来使用while和repeat循环吗?这是一个很简单的任务,但是没有宏,我找不到任何好的和简单的东西。
至少做一个无限循环,然后在一个条件下打破它?
编辑:
我的意思是
do {
// loop code
} while (condition)
或
while (condition) {
// loop code
}
编辑二:
看起来twig本身不支持它,原因与continue;
或break;
语句都不支持它相同。
https://github.com/twigphp/Twig/issues/654
5条答案
按热度按时间e4yzc0pl1#
您可以使用足够高的循环限制(10000?),用
for ... in ... if
模拟它。同时
PHP程式码:
小枝:
边做边看
PHP程式码:
小枝:
lawou6xi2#
简而言之:这个功能暗示了高级逻辑,它应该在你的业务逻辑中,而不是在模板层中。这是MVC中关注点分离的一个最好的例子。
Twig完全支持
for
-loops,如果你的代码编写正确,这应该足够了--复杂的条件决定显示哪些数据是在它们所属的业务逻辑中做出的,然后将得到的数组“ready to render”传递给模板。然后Twig支持所有只需要渲染的好特性。bweufnob3#
我可以在twig中实现一个简单的for循环。所以下面的php语句:
翻译成twig就是:
这不是一个while循环,而是一个潜在的解决方案。最好的建议是将这样的业务逻辑排除在模板层之外。
zzoitvuj4#
这是可能的,但有点复杂。
您可以使用
{% include ... %}
来处理嵌套数组,从我读到的评论中可以看出这是您需要做的。请考虑以下代码:
nested_array_display.html
pxy2qtax5#
带有“定量环上限”的顶层溶液警告:当条件返回false时,循环并不中断,它只是不进入循环。因此循环一直运行到最高索引