【问题标题】:Laravel: Output value as a star ratingLaravel:输出值作为星级
【发布时间】:2020-07-27 05:10:51
【问题描述】:

所以我有一个评论系统,可以接收用户对酒店的评论。我也设法在其中加入了星级评定系统。星级评分系统有效,并将在数据库中存储 1-5 的值。现在,当我单击评论时,我将能够看到用户的所有评论。但是,当我单击评论时,我无法看到显示的星级。我将如何设法在评论中显示星级:

Show.blade.php

   {{Form::label('rating', 'Rating')}}
 <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/font- 
   awesome/5.13.0/css/all.min.css">
  <form>
  <input type="radio" class="star-input" name="rating" id="star-1" value="1">
  <label for="star-1" class="star"><i class="fas fa-star"></i></label>
  <input type="radio" class="star-input" name="rating" id="star-2" value="2">
  <label for="star-2" class="star"><i class="fas fa-star"></i></label>
  <input type="radio" class="star-input" name="rating" id="star-3" value="3">
  <label for="star-3" class="star"><i class="fas fa-star"></i></label>
  <input type="radio" class="star-input" name="rating" id="star-4" value="4">
  <label for="star-4" class="star"><i class="fas fa-star"></i></label>
  <input type="radio" class="star-input" name="rating" id="star-5" value="5" 
  checked>
<label for="star-5" class="star"><i class="fas fa-star"></i></label>

 </form>
{{Form::Submit('submit', ['class' => 'btn btn-primary'])}}
{!! Form::close() !!}


    @if(count($review) > 1)
    @foreach($review as $reviews)
        <div class= "well"> 
            <h3><a href="/reviews/{{$reviews->title}}">{{$reviews->title}} </a>

    @for($i = 0; $i < 5; $i++)
      @if($i <= $reviews->rating)
        <label for="star-5" class="star">
        <i class="fas fa-star"span class="star star--gold"></span></i>
        </label>
      @else
      @endif
    @endfor

如您所见,我有 {{$reviews-> rating}},其 atm 显示值 1-5。我将如何准确地显示一个实际的星星。

【问题讨论】:

  • 到目前为止你尝试过什么?你被困在哪里了?如果您已经拥有该号码,那么究竟缺少什么?

标签: php html laravel


【解决方案1】:

要在模板中输出星星,您可以在下面的示例中执行以下操作。但首先要注意一下您的变量用法:尝试将任何评论数组设为复数形式,将单个评论设为单数形式。所以$reviews 用于所有评论和单个评论$review。这使您的代码对您和其他人来说更具可读性和可理解性。

所以你的$review-&gt;rating 属性是数字。当数字为 3 时,您希望以正确的样式显示 3 颗星。

使用循环输出 5 颗星。在该循环内查看当前星级的索引是否低于或等于评级值。如果是,则意味着当前的明星必须是评级的一部分。如果不是,则意味着这颗星应该变灰或样式不同。

这将导致所有应该是金色的星星都有 star--gold 类,可以相应地设置样式。

@if(count($reviews) > 1)
  @foreach($reviews as $review)

    <div class= "well"> 
      <h3>
        <a href="/reviews/{{ $review->title }}">{{ $review->title }}</a>

        @for ($i = 0; $i < 5; $i++)
          @if ($i < $review->rating)
            <span class="star star--gold"></span>
          @else
            <span class="star"></span>
          @endif
        @endfor

      </h3>
      <small>{{ $review->created_at }}</small>
      <br>
      <small>{{ $review->body }}</small> 
      <br>
      <br>
    </div>

  @endforeach
@else

【讨论】:

  • 越来越近的病让你知道我是否有重大问题
猜你喜欢
  • 2021-11-25
  • 2018-05-09
  • 2021-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-22
  • 2015-01-21
相关资源
最近更新 更多