Header Ads

Header ADS

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

Theme images by fpm. Powered by Blogger.