Как выводить статей блога по категориям?

Я новичок. Хочу выводить статей блога по категориям. Но не знаю как сделать( Помогите пожалуйста)))

PostController.php

public function categories()
    {
        
        $posts = Post::orderBy('cat_id')->paginate(8);
        
        return view('committe', ['posts' => $posts]);
    }

Web.php

Route::get('/committe', 'App\Http\Controllers\Admin\PostController@categories')->name('categories');

committe.blade.php

@extends('layouts.app')

@section('title-block'){{ __('messages.TÄZELIKLER') }} @endsection

@section('content')
  @foreach ($posts as $post) 
  @if (App::isLocale('tm'))

<div class="cardd">
  <div class="shadow flex-md-row p-5 mb-4 box-shadow h-md-250 position-relative bg-white rounded-3" data-aos="fade-right">
<div class="row g-0">
  <div class="col-md-4">
    <img src="{{ $post['img'] }}" class="img-card shadow rounded-3" alt="">
  </div>
  <div class="col-md-8">
  
  <i class="fa fa-calendar mb-3 text-danger d-flex" aria-hidden="true"><p class="card-text text-danger ml-2">{{ $post['created_at']->format('Y-m-d') }}</small></p> <i class="fa fa-eye mb-3 text-dark d-flex ml-4" aria-hidden="true"><p class="card-text text-dark ml-2">{{ $post['views'] }}</small></p></i></i>
  <h3 class="card-title">
      <a class="d-inline-block" href="{{ route('show', $post->id) }}">{{ $post['title'] }}</a>
      </h3>
      <a href="{{ route('show', $post->id) }}" type="button" class="btn btn-primary">{{__('messages.Giňişleýin okamak')}}</a>
<div class="p-2 mb-2 text-success">{{ $post->category['title'] }}</div>
  </div>
</div>
</div>
</div>

  @endif


  @endforeach
 
<div class="position-relative">
  {{ $posts->links('pagination::bootstrap-4') }}
</div>


<script src="/js/aos.js"></script>
  <script>
    AOS.init({
      offset: 100,
      duration: 1000
    });
  </script>

@endsection

Ответы (1 шт):

Автор решения: Condor

Чтобы вывести все статьи определенной категории, сперва нужно изменить роутинг:

Route::get('/categories/{category_id}', [PostController::class, 'categories'])->name('categories');

Например, ссылки на категории будут такими:

/categories/1
/categories/2
/categories/3

Затем чуть меняем метод в контроллере:

    public function categories($categoryId)
    {  
          $posts = Post::where('cat_id', $categoryId)->orderBy('cat_id')->paginate(8);
            
          return view('committe', ['posts' => $posts]);
    }
→ Ссылка