Files
2026-04-07 17:54:26 +05:00

27 lines
891 B
PHP

<?php
namespace App\Containers\Dashboard\Actions\Sliders;
use App\Containers\Widget\Models\Slider;
use Illuminate\Pagination\LengthAwarePaginator;
class ListSlidersAction
{
public function run(array $filters = []): LengthAwarePaginator
{
$query = Slider::query()
->withCount('slides')
->when(isset($filters['is_active']), function ($query) use ($filters) {
$query->where('is_active', $filters['is_active']);
})
->when(isset($filters['search']), function ($query) use ($filters) {
$query->where(function ($q) use ($filters) {
$q->where('title', 'like', '%' . $filters['search'] . '%')
->orWhere('slug', 'like', '%' . $filters['search'] . '%');
});
});
return $query->orderBy('title', 'asc')->paginate(20);
}
}