Data Display

1. To display products by category

2. To display products by subcategory

3.. To display subcategory by category

1. To display products by category in Larave

To display products by category in Laravel (Blade + Controller + Model + Database), you need to follow a few simple steps. Here's a full example:

Step 1: Models

        
               // app/models/Category.php
              
              {
                  public function products()
                  {
                      return $this->hasMany(Product::class);
                  }
              }

              // app/models/Product.php

              {
                  public function category()
                  {
                      return $this->belongsTo(Category::class);
                  }
              }

          
          
Step 2: Controller

  
        use App\Models\Category;

        public function showProductsByCategory($category_id)
        {
            $category = Category::with('products')->findOrFail($category_id);
            return view('products.by_category', compact('category'));
        }

    
    
Step 3: Web Routes

      
           Route::get('/category/{id}/products', [ProductController::class, 'showProductsByCategory']);

        
        
Step 4: Blade View (products/by_category.blade.php)

      
          <h2>Products in Category: {{ $category->category_name }}</h2>

            <ul>
                @foreach($category->products as $product)
                    <li>
                        {{ $product->product_name }} - ${{ $product->price }}
                    </li>
                @endforeach
            </ul>


        
        

2. To display subcategory by category in Larave

Laravel এ যদি আপনি প্রতিটি Category অনুযায়ী SubCategory গুলো দেখাতে চান, তাহলে আপনাকে Category এবং SubCategory এর মধ্যে সম্পর্ক (relationship) তৈরি করতে হবে এবং তারপর সেগুলো view-তে দেখাতে হবে।

To display subcategory by category in Laravel (Blade + Controller + Model + Database), you need to follow a few simple steps. Here's a full example:

Step 1: Models

  
     // Category.php
      class Category extends Model
      {
          public function subcategories()
          {
              return $this->hasMany(SubCategory::class);
          }

      }

      // SubCategory.php
      class Product extends Model
      {
          public function category()
          {
              return $this->belongsTo(Category::class);
          }

      }


    
    
Step 2: Controller

    
       use App\Models\Category;

      public function showCategoriesWithSub()
      {
          $categories = Category::with('subcategories')->get();
          return view('your-view-name', compact('categories'));
      }

      
      
Step 3: Blade File (View):

        
             @foreach ($categories as $category)
              <h3>{{ $category->name }}</h3>
              <ul>
                  @foreach ($category->subcategories as $sub)
                      <li>{{ $sub->name }}</li>
                  @endforeach
              </ul>
          @endforeach

          
          

3. To display Products by subcategory in Larave

Laravel এ যদি আপনি প্রতিটি SubCategory অনুযায়ী Product গুলো দেখাতে চান, তাহলে আপনাকে Productএবং SubCategory এর মধ্যে সম্পর্ক (relationship) তৈরি করতে হবে এবং তারপর সেগুলো view-তে দেখাতে হবে।

To display Products by Subcategory in Laravel (Blade + Controller + Model + Database), you need to follow a few simple steps. Here's a full example:

Step 1: Models

        
           // Subcategory.php
            class Category extends Model
            {
                public function products()
            {
                return $this->hasMany(Product::class);
            }


            }

            // Product.php
            class Product extends Model
            {
               public function subcategory()
              {
                  return $this->belongsTo(SubCategory::class);
              }


            }


          
          
Step 2: Controller

          
             use App\Models\SubCategory;

              public function productsBySubcategory($id)
              {
                  $subcategory = SubCategory::with('products')->findOrFail($id);
                  return view('products.subcategory_products', compact('subcategory'));
              }


            
            
Step 3: Blade File (View):

  
       <h2>Subcategory: {{ $subcategory->name }}</h2>

        @foreach($subcategory->products as $product)
            <div class="product-card">
                <h4>{{ $product->name }}</h4>
                <p>{{ $product->description }}</p>
                <p>Price: {{ $product->price }}</p>
            </div>
        @endforeach


    
    
Step 4: Web Routes

    
         Route::get('/subcategory/{id}/products', [ProductController::class, 'productsBySubcategory']);


      
      

Alternate Method

2. To display Product by category in Larave

Laravel এ যদি আপনি প্রতিটি Category অনুযায়ী product গুলো দেখাতে চান, তাহলে আপনাকে নিচের পদ্ধতি আনুসরন করতে হবে।

Step 1: Web Routes

    

    Route::controller(PageController::class)->group(function(){
      Route::get('/pages/categoryPage/{id}/{slug}', 'categoryPage')->name('pages.categoryPage');
    
     });

     
      
Step 2: Controller

    

    //product display by category id
      public function categoryPage($id){
        $categories = Category::all();//category show in menubar
        
        //product display by category_id
        $category_id = Post::where('category_id', $id)->value('category_id');
        $posts = Post::where('category_id', $category_id)->latest()->get();
        
        return view('pages.categoryPage', compact('categories','posts'));

    }


    
    
Step 3: categoryPage.blade.php

    

    <section class="py-5 bg-light" id="projects">
    <div class="container">
      <h2 class="text-center mb-5" data-aos="fade-up">My Projects</h2>

      <!-- Category Filter Buttons -->
      <div class="text-center mb-5" data-aos="zoom-in">
        <a href="{{route('homePage')}}">
          <button class="btn btn-outline-dark me-2 filter-btn active" data-filter="all">All</button>
        </a>
        
       @foreach ($categories as $data)
        <a href="{{route('pages.categoryPage',[$data->id, $data->slug], )}}">{{Str::limit($data->category_name, 15)}}</a>
        @endforeach
        
      </div>

      <!-- Project Cards -->
      <div class="row g-4">
        @if($posts->isEmpty())
              
        <h2 class="mt-5">Data Not Found....</h2>
        
        @else
        
        @forelse($posts as $post)
        <div class="col-md-4 project-item" data-category="laravel" data-aos="fade-up">
          <a href="{{$post->link_name}}">
            <div class="card project-card">
            <img src="{{asset('uploads/image/'.$post->post_image)}}" class="card-img-top" alt="Project">
            <div class="card-body">
              <h5 class="card-title">{{$post->title}}</h5>
              <p class="card-text"></p>
            </div>
          </div>
          </a>
        </div>
        @endforeach
        @endif
      </div>
    </div>
  </section>