• Час читання ~1 хв
  • 02.03.2023

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.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Про автора CrazyBoy49z
WORK EXPERIENCE
Контакти
Ukraine, Lutsk
+380979856297