tomaskemok / custom-nova-dependent-filter
Filtro dependiente y searchable para Laravel Nova con soporte para múltiples dependencias.
Installs: 2
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/tomaskemok/custom-nova-dependent-filter
Requires
- php: >=7.4
- laravel/nova: >=4.0
This package is auto-updated.
Last update: 2026-01-02 03:51:34 UTC
README
Este paquete proporciona un filtro personalizado para Laravel Nova que permite crear filtros dependientes con funcionalidad searchable. Soporta múltiples dependencias entre filtros.
Instalación
- Clona o descarga este repositorio en la carpeta
nova-components/DependentSearchableFilterde tu proyecto Laravel. - Ejecuta
composer installdentro de la carpeta del paquete si es necesario. - Compila los assets JS/Vue del filtro:
- Instala dependencias JS:
cd nova-components/DependentSearchableFilter npm install - Compila los assets:
npm run dev # o para producción npm run prod
- Instala dependencias JS:
- Registra el filtro en tu recurso Nova.
Uso
Ejemplo avanzado de integración
- Crea los filtros en
app/Nova/Filters:
use DependentSearchableFilter\DependentSearchableFilter; use Illuminate\Http\Request; use App\Models\Category; use App\Models\Subcategory; class CategoryFilter extends DependentSearchableFilter { public function __construct() { parent::__construct([]); // Sin dependencias } public function options(Request $request) { return Category::pluck('name', 'id')->toArray(); } } class SubcategoryFilter extends DependentSearchableFilter { public function __construct() { parent::__construct(['category']); // Depende de CategoryFilter } public function options(Request $request) { $categoryId = $request->get('category'); if ($categoryId) { return Subcategory::where('category_id', $categoryId)->pluck('name', 'id')->toArray(); } return []; } }
- Registra los filtros en tu recurso Nova:
use App\Nova\Filters\CategoryFilter; use App\Nova\Filters\SubcategoryFilter; public function filters(Request $request) { return [ new CategoryFilter(), new SubcategoryFilter(), ]; }
Solución de errores comunes
- Si ves errores de clases desconocidas (
Illuminate\Http\Request,App\Models\Category, etc.), asegúrate de tener los modelos y dependencias correctas en tu proyecto Laravel. - Instala dependencias con:
composer require laravel/novacomposer install
- Si usas modelos personalizados, reemplaza
CategoryySubcategorypor los tuyos.
Personalización
- Puedes definir la lógica de opciones en el método
optionsdel filtro. - El filtro es searchable y actualiza sus opciones dinámicamente según los valores seleccionados en los filtros padres.
Estructura
src/DependentSearchableFilter.php: Filtro Nova PHP.resources/js/components/DependentSearchableFilter.vue: Componente Vue para la UI.
Contribuciones
¡Se aceptan PRs y sugerencias!