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.
的语法糖
我想要实现的是根据数字 (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.