Laravel product review display only current product review
//controller code
public function viewProduct($product_slug)
{
// Retrieve the product by its slug along with the review count
$product = Product::where('slug', $product_slug)
->withCount('reviews') // eager load review count
->first();
return view('front.product.product-details', compact('product'));
} //end Method
//product.php model
public function reviews()
{
return $this->hasMany(ProductReview::class, 'product_id');
}
//productreview.php model
public function product()
{
return $this->belongsTo(Product::class);
}
<!-- customer review -->
<section class="ecommerce-customer ">
<div class="container manrope ezytor-pt-55 ezytor-mb-75">
<div class="row row-cols-1 row-cols-lg-2 gy-4 ">
@php
// Assuming you're passing the product ID to this blade view
$productId = $product->id;// Example product ID, replace with actual product ID
$productReviews = App\Models\ProductReview::where('product_id', $productId)->get();
@endphp
@foreach ($productReviews as $review)
<div class="col">
<div class="card-container h-100 p-4">
<div class="d-flex">
<div>
<img src="{{ asset('images/clients/' . $review->photo) }}" alt="">
</div>
<div class="ms-3 align-items-center">
<p class="ezytor-heading-4 ezytor-fw-700 mb-0 pt-3">{{ $review->name }}</p>
<p class="ezytor-paragraph-3 text-muted mt-0">{{ $review->designation }}</p>
</div>
</div>
<p class="ezytor-heading-4 ezytor-fw-700 text-dark mt-4">{{ $review->company }}</p>
<p class="ezytor-paragraph-2 text-ash">
{{ $review->message }}
</p>
{{-- <img src="https://besnik-space.fra1.digitaloceanspaces.com/ezytor/theme/7BqEBaJOHoV6UebsytSZlxd7Y7Jm3LgsHoSmbTEP.svg"
alt=""> --}}
<div class="stars">
@php
$rating = $review->star_count;
$whole = floor($rating);
$fraction = $rating - $whole;
@endphp
{{-- Whole stars --}}
@for ($i = 0; $i < $whole; $i++)
<i class="fas fa-star"></i>
@endfor
{{-- Half star --}}
@if ($fraction >= 0.5)
<i class="fas fa-star-half-alt"></i>
@endif
{{-- Empty stars --}}
@for ($i = 0; $i < 5 - ceil($rating); $i++)
<i class="far fa-star"></i>
@endfor
</div>
</div>
</div>
@endforeach
</div>
<div class=" ezytor-mt-55 text-center">
<button class="rounded-pill bg-primary ezytor-paragraph-1 ezytor-fw-600 text-white border-0 ">
Load More
</button>
</div>
</div>
</section>
//<span class="ezytor-paragraph-7 text-ash ms-1">({{$best_sell->reviews_count}} reviews)</span>
This reviews_count column not a db column, this column is a virtual column
No comments