Skip to content

FilterScopesTrait

Luis Gustavo Santarosa Pinto edited this page Mar 17, 2025 · 1 revision

A FilterScopesTrait é uma trait que adiciona funcionalidades de escopos de filtro a um modelo no Laravel. Ela permite que você adicione filtros com base em parâmetros de requisição.

Ela identifica quando está sendo chamada dentro de um comando e habilita automaticamente os parâmetros para a requisição filter.

Exemplo de URL

Para utilizar a trait FilterScopesTrait com parâmetros de filtro em uma URL, você pode passar o parâmetro filter['termo'] na query string da requisição. Veja o exemplo abaixo:

http://seu-dominio.com/api/modelo?filter['termo']=termo

Neste exemplo, o filtro será aplicado com base no termo termo nas colunas e relações configuradas.

Propriedades

  • protected ?string $filter = '': O termo de filtro.
  • protected array $filterableColumns = []: As colunas que podem ser filtradas.
  • protected array $filterableRelations = []: As relações que podem ser filtradas.

Métodos

addFilterScope(?string $filter = ''): self

Adiciona escopos de filtro com base nos parâmetros de requisição.

  • Parâmetros:

    • ?string $filter: O termo de filtro. Se não for fornecido, será usado o termo filter da requisição.
  • Retorno:

    • self: A instância atual da classe.

Exemplo de Uso

$model->addFilterScope('termo');

getFilter(): string

Obtém o termo de filtro.

  • Retorno:
    • string: O termo de filtro.

setFilter(string $filter): self

Define o termo de filtro.

  • Parâmetros:

    • string $filter: O termo de filtro.
  • Retorno:

    • self: A instância atual da classe.

isFilterable(): bool

Verifica se o filtro é possível com base nas colunas e relações configuradas.

  • Retorno:
    • bool: true se o filtro for possível, false caso contrário.

Clone this wiki locally