• Czas czytania ~1 min
  • 02.03.2023

Laravel Filtr modelu oferuje prosty sposób filtrowania i wyszukiwania wymownych modeli według parametrów tablicy i ciągów zapytań.

Oto prosty przykład, aby dokładnie zilustrować, jak działa ten pakiet. Biorąc pod uwagę następujący filtr, możesz wygenerować za pomocą dostarczonego polecenia 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';
}

Możesz zastosować filtr CreatedAfterFilter do modelu, jak w poniższym przykładzie:

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,
    ];
}

Następnie możesz wyzwolić filtr programowo lub za pomocą ciągu zapytania:

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();

Ten pakiet zawiera wiele funkcji związanych z modelami filtrowania, takich jak:

  • Filtrowanie grup
  • Sprawdzanie poprawności
  • filtru Sortowanie
  • Wyszukiwanie Data Typ filtra Typ
  • filtra String
  • Wybierz typ
  • filtra Typ filtru numerycznego Typ
  • filtru logicznego Typ filtru
  • do kosza Filtrowanie według relacji
  • I nie tylko

Aby rozpocząć pracę z tym pakietem, zapoznaj się z oficjalną dokumentacją kod źró; dłowy znajduje się również na GitHub pod adresem lacodix/laravel-model-filter.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

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...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297