Twig - 如何呈现 HTML 评级元素

Twig - How to render an HTML rating element

我想要实现的是根据数字 (0-5)

渲染一个简单的 5 星评级 HTML 元素

示例:

 {{ user.rating }} // returns integer 4

输出应该是:

<div class="rating">
     <i class="star voted"></i>
     <i class="star voted"></i>
     <i class="star voted"></i>
     <i class="star voted"></i>
     <i class="star-empty"></i>
</div>
// 4 lighted stars out of 5

谢谢

您可以使用此代码存档您的问题:

<div class="rating">
{% for i in 1..5 %}
{% set starClass = (user.rating >= i ? "star voted" : "star-empty")  %}
     <i class="{{ starClass }}"></i>
{% endfor %}
</div>

See the working solution on this twigfiddle

解释:

来自doc:

If you do need to iterate over a sequence of numbers, you can use the .. operator:

{% for i in 0..10 %}
    * {{ i }}
{% endfor %}

Twig 内置的 .. 运算符只是 range function.

的语法糖