php Twig -如何呈现HTML评级元素

lnvxswe2  于 2023-01-08  发布在  PHP
关注(0)|答案(2)|浏览(114)

我试图实现的是基于数字(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

谢啦,谢啦

xzlaal3s

xzlaal3s1#

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

<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
如果确实需要迭代一个数字序列,可以使用..运算符:

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

Twig内置的..操作符只是range function的语法糖。

fcwjkofz

fcwjkofz2#

简单方法:

{% set stars, count,starsResult = 4 , 1 , "" %}

{% for i in range(1, 5) %}

     
{% if stars >= count %}

{% set starsResult = starsResult ~ "<i "star active">" %}

{% else %}
{% set starsResult = starsResult ~ "<i class="star disable">" %}

{% endif %}

{% set count = count + 1 %}

{% endfor %}

{{ starsResult }}

相关问题