Laravel Model Filter пропонує простий спосіб фільтрації та пошуку красномовних моделей за параметрами масиву та рядками запитів.
Ось простий приклад, щоб проілюструвати, як саме працює цей пакет. Враховуючи наступний фільтр, ви можете створити за допомогою наданої команди make:filter
:
namespace App\Models\Filters;
use Lacodix\LaravelModelFilter\Filters\DateFilter;
class CreatedAfterFilter extends DateFilter
{
public FilterMode $mode = FilterMode::GREATER_OR_EQUAL;
protected string $field = 'created_at';
}
Ви можете застосувати CreatedAfterFilter
на моделі, як у наступному прикладі:
namespace App\Models;
use App\Models\Filters\CreatedAfterFilter;
use Illuminate\Database\Eloquent\Model;
use Lacodix\LaravelModelFilter\Traits\HasFilters;
class Post extends Model
{
use HasFilters;
protected array $filters = [
CreatedAfterFilter::class,
];
}
Потім ви можете запустити фільтр програмно або за допомогою рядка запиту:
Post::filter(['created_after_filter' => '2023-01-01'])->get();
// Multiple filters
Post::filter([
'created_after_filter' => '2023-01-01',
'published_filter' => true,
])->get();
// Or by query string: /posts?created_after_filter=2023-01-01
Post::filterByQueryString()->get();
Цей пакет містить багато функцій, пов'язаних із моделями фільтрації, таких як:
- Групове фільтрування
- Перевірка
- фільтра Сортування Пошук Дата фільтра тип фільтра
- Тип рядка Вибрати тип
- фільтра Числовий тип фільтра Булевий тип фільтра Тип сміттєвого фільтра
- Фільтрація за відношеннями
- І багато іншого
Щоб розпочати роботу з цим пакетом, перегляньте офіційна документація; вихідний код також знаходиться на GitHub за адресою lacodix/laravel-model-filter.