Skip to content

Latest commit

 

History

History
102 lines (76 loc) · 3.88 KB

Readme_it-IT.md

File metadata and controls

102 lines (76 loc) · 3.88 KB

Laravel ModelSearch

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

Laravel ModelSearch é una semplice libreria per realizzare query di ricerca su specifici Modelli con Laravel o Illuminate 5.8

Requisiti

  • Laravel 5.7+

Installazione

Composer

Esegui il comando composer require skyraptor/modelsearch per installare l'ultima versione della libreria. A seguire esegui composer update. La libreria registrerá il proprio ServiceProvider usando il gestore pacchetti Laravel.

Configurazione

Il pacchetto include un file di configurazione che dovresti pubblicare con il comando php artisan vendor:publish e se guendo le istruzione della seguente schermata. Nel file di configurazione devi modificare il namespace relativo alla tua directory dei filtri ed il prefisso della tua filter request.

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

Filtri

Per definire un filtro devi creare un cartella chiamata come il tuo modello all'interno della tua cartella dei filtri. Dentro questa cartella puoi creare un finder specifico per il modello. Ad esempio:
path\to\laravel\app\Filters\User\HasId.php Il tuo filtro deve estendere 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 );
   }
}

Request Filters

Il prefisso request filter nel file di configurazione definisce il prefisso da usare per i nomi dei filtri nei parametri della request. Ció puó essere usato per permettere all'utente di applicare filtri nelle request POST e GET. Andrá fatto manualmente chiamando il metodo addRequestFilters e passandogli un'istanza della request.

Ricorda sempre di applicare i filtri nell'ordine corretto.

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

Puoi cambiare il prefisso dei filtri di ricerca successivamente chiamando il metodo setRequestFilterPrefix(), fornendo un nuovo prefisso.

Esempi

L'esempio seguente mostra come usare la Search nel Controller:

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

    ...
}