32 lines
725 B
PHP
32 lines
725 B
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\News;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\View\View;
|
|
|
|
class NewsController extends Controller
|
|
{
|
|
public function index(Request $request): View
|
|
{
|
|
$category = $request->query('category');
|
|
|
|
$news = News::published()
|
|
->when($category, fn ($q) => $q->where('category', $category))
|
|
->paginate(9)
|
|
->withQueryString();
|
|
|
|
return view('news.index', compact('news', 'category'));
|
|
}
|
|
|
|
public function show(News $news): View
|
|
{
|
|
if ($news->status !== 'published' || $news->published_at === null) {
|
|
abort(404);
|
|
}
|
|
|
|
return view('news.show', compact('news'));
|
|
}
|
|
}
|