Как выводить статей блога по категориям?
Я новичок. Хочу выводить статей блога по категориям. Но не знаю как сделать( Помогите пожалуйста)))
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]);
}