You've already forked Atomcms-edit
25 lines
738 B
PHP
Executable File
25 lines
738 B
PHP
Executable File
<?php
|
|
|
|
namespace App\Services\Articles;
|
|
|
|
use App\Models\Articles\WebsiteArticle;
|
|
use Illuminate\Contracts\Pagination\LengthAwarePaginator;
|
|
use Illuminate\Database\Eloquent\Collection;
|
|
|
|
readonly class ArticleService
|
|
{
|
|
public function getArticles(bool $paginate = false, int $perPage = 8): array|Collection|LengthAwarePaginator
|
|
{
|
|
$query = WebsiteArticle::query()->with(['user' => function ($query) {
|
|
$query->select('id', 'username', 'look');
|
|
}])->orderByDesc('id');
|
|
|
|
return $paginate ? $query->paginate($perPage) : $query->get();
|
|
}
|
|
|
|
public function fetchArticle(string $slug): WebsiteArticle
|
|
{
|
|
return WebsiteArticle::query()->where('slug', '=', $slug)->firstOrFail();
|
|
}
|
|
}
|