Pacote de filtragem Eloquent – Laravel News

Eloquent Filtering Package image

A filtragem grandiloquente pacote melhora o processo de construção de filtros de consulta dinâmicos no Eloquent. Não importa se você está gerenciando grandes conjuntos de dados ou construindo funcionalidades de pesquisa complexas, o Eloquent Filtering ajuda a simplificar a experiência.

O que é filtragem Eloquent?

Em sua núcleo, o Eloquent Filtering permite que os desenvolvedores filtrem modelos dinamicamente com base em dados de solicitação de ingresso. Em vez de encadear manualmente várias condições de consulta, o pacote abstrai o processo, permitindo uma base de código mais legível e sustentável.

Exemplo Obrigatório

class Product extends Model implements IsFilterable

{

use Filterable;

 

public function allowedFilters(): AllowedFilterList

{

return Filter::only(

Filter::field('name', [Sua visita nos ajuda a continuar oferecendo o melhor para você! #005CC5;">FilterType::EQUAL]),

);

}

}

 

$products = Product::filter([

[

'target' => 'name',

'type' => '$eq',

'value' => 'TV'

]

])->get();

Exemplo de filtro de campo e relacionamento

class Product extends Model implements IsFilterable

{

use Filterable;

 

public function allowedFilters(): AllowedFilterList

{

return Filter::only(

Filter::field('name', [FilterType::EQUAL]),

Filter::relationSua visita nos ajuda a continuar oferecendo o melhor para você! style="color: #032F62;">'manufacturer', [FilterType::HAS])->includeRelationFields()

);

}

 

public function manufacturer(): HasOne

{

return $this->hasOne(Manufacturer::class);

}

}

 

class Manufacturer extends Model implements IsFilterable

{

use Filterable;

 

public function allowedFilters(): AllowedFilterList

{

return Filter::only(

Filter::field('name', [FilterType::EQUAL])

);

}

}

 

$filters = [

[

'target' => 'name',

'type' => '$eq',

'value' => 'TV',

],

[

'type' => '$has',

'target' => 'manufacturer',

'value' => [

[

'type' => '$eq',

'target' => 'name',

'value' => 'Sony',

]

]

]

];

 

$sql = Product::filter($filters)->toRawSqlSua visita nos ajuda a continuar oferecendo o melhor para você! data-theme="github-light" data-lang="sql" class="torchlight" style="background-color: #fff; --theme-selection-background: #e2e5e9;">

SELECT *

FROM "products"

WHERE "products"."name" = 'TV'

AND EXISTS (

SELECT *

FROM "manufacturers"

WHERE "products"."manufacturer_id" = "manufacturers"."id"

AND "manufacturers"."name" = 'Sony'

)

Confira o documentos oficiais e veja o que há de novo em V2 do pacote.

Tags:

Crédito: Natividade Original

Adriano Pina

Adriano Pina

Análise de Sistemas | SEO e Google Ads | Fundador da Loja Script PHP Aqui & Marca Shoslh de tecnologia

Especialista em transformar ideias em soluções digitais e acelerar o crescimento online.

Deixe um comentário

Tem perguntas? Nos envia sua mensagem 24/7!

(17) 99100-0874

Endereço & Contato

Centro, Interior de São Paulo
E-mail: [email protected]

Links Úteis
BAIXAR APP | SCRIPT PHP AQUI
Certificados
0
    0
    Seu carrinho
    Seu carrinho está vazio

    Usamos cookies para garantir que oferecemos a melhor experiência em nosso site. 

       

    X

    Clique em um de nossos representantes abaixo para conversar no WhatsApp ou envie um email para: 📧 [email protected]

    Precisa de ajuda fale conosco?