Laravel 中的星级和半星评级

Posted

技术标签:

【中文标题】Laravel 中的星级和半星评级【英文标题】:Star and Half Star Rating in Laravel 【发布时间】:2021-11-25 16:53:09 【问题描述】:

我想以星级显示平均产品评分。数值显示良好,但如果数值为浮点数,我想显示半星。

我的刀片视图:

<div class="rating">
  @for($i=0;$i<5;$i++)
    @if($product->ratings->avg('rating') > $i)
      <span class="icon-ratings"><i class="icon-rating icon-rating-x"></i></span>
    @else
      <span class="icon-ratings"><i class="icon-rating icon-rating-o"></i></span>
    @endif
  @endfor
 &nbsp; <div style="float:left">$product->ratings->avg('rating')</div>
</div>

平均值显示为 4.5。但是所有的 5 颗星都充满了金色。我想填充最后一半的星,因为那是一个浮点数。

【问题讨论】:

【参考方案1】:

使用floor()函数来检测像这样的浮点值

.................
@for($i=0;$i<5;$i++)

  <?php
    $thisRating = product->ratings->avg('rating')
    if(floor($thisRating) != $thisRating) 
      $hasHalfVal = 1;
     else 
      $hasHalfVal = 0;
    
  ?>

   @if($thisRating > $i && $hasHalfVal == 0)
     <span class="icon-ratings"><i class="icon-rating icon-rating-x"></i></span>
   @else if($thisRating > $i && $hasHalfVal == 1) 
     <span class="icon-ratings"><i class="icon-rating icon-rating-half"></i></span>
   @else
     <span class="icon-ratings"><i class="icon-rating icon-rating-o"></i></span>
   @endif

 .................

【讨论】:

以上是关于Laravel 中的星级和半星评级的主要内容,如果未能解决你的问题,请参考以下文章

如何在 swift 中使用 cosmos 评级控制器显示半星评级?

更改 MUI 评级中的星级数量

我正在使用 Laravel:Livewire 星级组件。我想以星星显示总评分

在离子中实现半星

Laravel Eloquent - 如何获得嵌套关系

html 将数字评级转为星级。