Ваше решение может быть использовано только для показа 1 оценки / отзыва. Если вам нужно показать больше обзоров, вам нужно изменить его с помощью нескольких итераций / циклов.
Если вы не используете AJAX для получения большего количества отзывов, вы можете просто l oop просмотреть все отзывы с шаблоном лезвия, так как вы используете laravel.
@foreach($ratings as $re)
<div class="d">
@for($i = 0; $i < $re->rating; $re++)
<span class="fa fa-star"></span>
@endfor
@for($i = 0; $i < 5 - $re->rating; $re++)
<span class="fa fa-star-o"></span>
@endfor
</div>
@endforeach
Если вы используете AJAX, вы можете отформатировать вывод ваших оценок с помощью JSON, например:
[
{"review_id":1, "rating":3, "review":"not so bad"},
{"review_id":2, "rating":5, "review":"good"},
{"review_id":3, "rating":5, "review":"perfect"}
]
и декодируйте его с помощью javascript, затем пусть javascript обрабатывает поколение HTML:
<div id="containerRating"></div>
<script>
$.ajax({
url: "http://...",
type: "GET",
success: function(data){
var ratings = JSON.parse(data);
for (var i=0; i<ratings.length; i++) {
var ratingHtml = "<div class='review'>";
for (var j=0; j<ratings[i]; j++) {
ratingHtml = ratingHtml + "<span class='fa fa-star'></span>"
}
for (var j=0; j<5-ratings[i]; j++) {
ratingHtml = ratingHtml + "<span class='fa fa-star-o'></span>"
}
ratingHtml = ratingHtml + "</div>"
$("#containerRating").append(ratingHtml);
}
});
</script>