Skip to content

Latest commit

 

History

History
106 lines (76 loc) · 3.82 KB

Readme_pl-PL.md

File metadata and controls

106 lines (76 loc) · 3.82 KB

Laravel ModelSearch

Build Status codecov StyleCI Total Downloads Latest Stable Version Latest Unstable Version License Homepage

Laravel ModelSearch to lekka, prosta w użyciu paczka do tworzenia dynamicznych zapytań dla konkretnych Modeli w Laravel lub Illuminate 5.8.

Wymagania

  • Laravel 5.7+

Instalacja

Composer

Uruchom composer require skyraptor/modelsearch aby zainstalować najnowszą wersję paczki, następnie uruchom composer update. Paczka zarejestruje własny ServiceProvider przy uzyciu Laraver Package Discovery

Konfiguracja

Paczka zawiera własny plik konfiguracyjny który powinieneś zainicjować poleceniem php artisan vendor:publish a następnie postępując zgodnie z poleceniami. W pliku konfiguracyjnym musisz zmienić namespace dla katalogu filtrów oraz prefix filtrów.

return [
   'filtersFQCN' => 'App\\Filters\\',
   'requestFilterPrefix' => 'filter_'
];

Filtry

Aby zdefiniować filtr musisz stworzyć folder o takiej samej nazwie jak model wewnątrz folderu z filtrami. Wewnątrz tego folderu, możesz stworzyć filtr dedykowany dla tego modelu.

Na przykład:
path\to\laravel\app\Filters\User\HasId.php Your filter has to extend ModelSearch\Contracts\Filter.

<?php

namespace App\Filters\User;

use ModelSearch\Contracts\Filter;
use Illuminate\Database\Eloquent\Builder;


class HasId implements Filter
{
   /**
    * Apply a given search value to the builder instance.
    *
    * @param Builder $builder
    * @param integer $value
    * @return Builder $builder
    */
   public static function apply(Builder $builder, $value)
   {
       return $builder->where( 'id', $value );
   }
}

Filtr Request

Prefiks filtra w pliku konfiguracyjnym definiuje jaki prefiks będzie użyty to filtrowania nazw w parametrze żądania. Można tego użyć aby zezwolić użytkownikowi do zaaplikowania filtru poprzez żądania POST i GET. To musi zostać zrobione manualnie poprzez wywołanie metody addRequestFilters oraz podanie instancji Reguest

Pamiętaj aby zawsze aplikować filtry w odpowiedniej kolejności:

$search = new ModelSearch( User::class );
$search->addRequestFilters( $request );
$result = $search->result();

Możesz zmienić prefiks filtra zapytania poprzez wywołanie metody setRequestFilterPrefix() podając nowy prefiks

Przykłady

Poniższy przykład pokazuje jak użyć Zapytania w kontrolerze:

namespace ModelSearch\ModelSearch;


public function someController( Request $request ) {
    ...

    $search = new ModelSearch( User::class );
    $search->addFilters([
        'HasId' => 1,
        'HasLastName' => 'Doe'
    ]);
    $search->addFilter('SomeFilter', 'value');
    $result = $search->result();

    // The search can be extended after processing results
    $search->addFilter('AnotherFilter', 'value');
    $result2 = $search->result();

    ...
}