Files
Epicnabbo-Catalogus-Updated…/Updated_Cms/app/Services/Articles/ArticleService.php
T
Remco 7b9849c159 🆙 More fixes 🆙
2026-01-19 20:43:46 +01:00

29 lines
885 B
PHP

<?php
namespace App\Services\Articles;
use App\Models\Articles\WebsiteArticle;
use Illuminate\Contracts\Pagination\LengthAwarePaginator;
use Illuminate\Database\Eloquent\Collection;
class ArticleService
{
/**
* @return Collection<int, WebsiteArticle>|LengthAwarePaginator<int, WebsiteArticle>
*/
public function getArticles(bool $paginate = false, int $perPage = 8): Collection|LengthAwarePaginator
{
$query = WebsiteArticle::with(['user' => function ($query): void {
/** @var \Illuminate\Database\Eloquent\Builder $query */
$query->select('id', 'username', 'look');
}])->orderByDesc('id');
return $paginate ? $query->paginate($perPage) : $query->get();
}
public function fetchArticle(string $slug): WebsiteArticle
{
return WebsiteArticle::where('slug', '=', $slug)->firstOrFail();
}
}