Download the PHP package cchery/turbo-filter without Composer
On this page you can find all versions of the php package cchery/turbo-filter. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package turbo-filter
TurboFilter
Advanced Eloquent Custom Filter para Laravel
TurboFilter permite aplicar filtros dinámicos y realizar consultas flexibles sobre tus modelos Eloquent, incluyendo paginación automática, búsquedas y filtros por relaciones anidadas. Todo con una sintaxis simple y reutilizable.
1. Instalación
-
Instala el paquete vía Composer:
- Publicar archivo de configuración
2. Conceptos Clave
TurboFilter agrega scopes a tus modelos para simplificar consultas complejas.
Los scopes principales son: filter(), getOrPaginate() y customGet().
3. Implementación
Primero preparamos el modelo
-
Para usar TurboFilter en un modelo, solo debes usar el trait
HasTurboFilterscomo se muestra a continuación: -
Notas importantes:
-
Las constantes de filtros definen los únicos campos sobre los que se pueden aplicar búsquedas.
-
Puedes tener varias constantes si quieres distintos conjuntos de filtros por modelo.
- Para relaciones, sigue la estructura: relacion1.relacion2#:campo1,campo2.
Aplicando los scopes
-
filter()
- Antes de "filtrar" nesecitas saber que la estructura de datos de filtrado debe ser de la siguiente forma, de lo contrario no funcionará:
-
Filtro por búsqueda simple:
- Filtro por by:
** Nota: tanto search como by pueden ir en el mismo payload de búsqueda
En el controller
Opcionalmente, puedes pasar el payload manualmente:
- Importante:
Si no se pasa la constante de filtros,
filter()no buscará en ningún campo ya que este scope solo usa los campos definidos en la constante, y no buscará en otros campos.
getOrPaginate()
- Suponiendo que el input sea un json con esta estructura de datos:
En el controller
** Nota: tanto el scope filter(), como el scope getOrPaginate() pueden implementarse en la mísma consulta.
customGet() => Este scope es la fusión de filter() y getOrPaginate()
- Suponiendo que el input sea un json con esta estructura de datos:
En el controller
** Nota: al usar este scope NO se deben usarse los otros scopes ya que este implementa tanto filter() como getOrPaginate() en uno solo.
All versions of turbo-filter with dependencies
illuminate/database Version ^8.0|^9.0|^10.0|^11.0|^12.0
illuminate/support Version ^8.0|^9.0|^10.0|^11.0|^12.0