PHPackages                             tomaskemok/custom-nova-dependent-filter - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. tomaskemok/custom-nova-dependent-filter

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

tomaskemok/custom-nova-dependent-filter
=======================================

Filtro dependiente y searchable para Laravel Nova con soporte para múltiples dependencias.

02PHP

Since Oct 2Pushed 7mo agoCompare

[ Source](https://github.com/tomaskemok/custom-nova-dependent-filter)[ Packagist](https://packagist.org/packages/tomaskemok/custom-nova-dependent-filter)[ RSS](/packages/tomaskemok-custom-nova-dependent-filter/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Dependent Searchable Filter for Laravel Nova
============================================

[](#dependent-searchable-filter-for-laravel-nova)

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
-----------

[](#instalación)

1. Clona o descarga este repositorio en la carpeta `nova-components/DependentSearchableFilter` de tu proyecto Laravel.
2. Ejecuta `composer install` dentro de la carpeta del paquete si es necesario.
3. 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
        ```
4. Registra el filtro en tu recurso Nova.

Uso
---

[](#uso)

### Ejemplo avanzado de integración

[](#ejemplo-avanzado-de-integración)

1. 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 [];
    }
}
```

2. 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

[](#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/nova`
    - `composer install`
- Si usas modelos personalizados, reemplaza `Category` y `Subcategory` por los tuyos.

Personalización
---------------

[](#personalización)

- Puedes definir la lógica de opciones en el método `options` del filtro.
- El filtro es searchable y actualiza sus opciones dinámicamente según los valores seleccionados en los filtros padres.

Estructura
----------

[](#estructura)

- `src/DependentSearchableFilter.php`: Filtro Nova PHP.
- `resources/js/components/DependentSearchableFilter.vue`: Componente Vue para la UI.

Contribuciones
--------------

[](#contribuciones)

¡Se aceptan PRs y sugerencias!

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance44

Moderate activity, may be stable

Popularity2

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity13

Early-stage or recently created project

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/d1936edc43b6b7c2f78462e6e93ae881efaeedf20639893c8667c5508b00042d?d=identicon)[tomaskemok](/maintainers/tomaskemok)

### Embed Badge

![Health badge](/badges/tomaskemok-custom-nova-dependent-filter/health.svg)

```
[![Health](https://phpackages.com/badges/tomaskemok-custom-nova-dependent-filter/health.svg)](https://phpackages.com/packages/tomaskemok-custom-nova-dependent-filter)
```

###  Alternatives

[rs/laravel-version-control

Foundations for making your app version controlled. Provides migration, blueprint and base models. Will make your app GxP compliant if you exclusively use the VC models and table structure as set out in this package.

1227.5k](/packages/rs-laravel-version-control)[mad-web/laravel-seoable

Easy to map your eloquent fields to seo properties

407.6k](/packages/mad-web-laravel-seoable)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
