Skip to content

FilterIncludeTrait

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

A FilterIncludeTrait é uma trait que adiciona funcionalidades de inclusão de relacionamentos personalizados a um modelo no Laravel. Ela permite que você adicione relacionamentos com base em parâmetros de requisição.

Exemplo de URL

Para utilizar a trait FilterIncludeTrait com parâmetros de inclusão em uma URL, você pode passar o parâmetro includes na query string da requisição. Veja o exemplo abaixo:

http://seu-dominio.com/api/modelo?includes=relacionamento1,relacionamento2

Neste exemplo, os relacionamentos relacionamento1 e relacionamento2 serão incluídos na resposta.

Propriedades

  • protected array|string $dataIncludes = []: Os relacionamentos a serem incluídos.
  • private $includeCallable: Callback para incluir os relacionamentos personalizados.

Métodos

addIncludeFilter(?string $includes = ''): void

Adiciona filtros de inclusão com base nos parâmetros de requisição.

  • Parâmetros:
    • ?string $includes: Os relacionamentos a serem incluídos. Se não for fornecido, nenhum relacionamento será incluído.

setInclude(?callable $callback = null): void

Define um callback para incluir relacionamentos personalizados.

  • Parâmetros:
    • ?callable $callback: O callback para incluir os relacionamentos. Se não for fornecido, um callback padrão será usado.

Exemplo de Uso

$model->addIncludeFilter('relacionamento1,relacionamento2');
$model->setInclude(function ($query) {
    $query->with('relacionamento1', 'relacionamento2');
});

Clone this wiki locally