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

Maintenance45

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

[commerceguys/tax

Tax library with a flexible data model, predefined tax rates, powerful resolving logic.

286763.3k](/packages/commerceguys-tax)[uvdesk/extension-framework

UVDesk Community Helpdesk Extension Framework Bundle

1636.5k](/packages/uvdesk-extension-framework)[wordpress-premium/advanced-custom-fields-pro

Advanced Custom Fields

2713.2k1](/packages/wordpress-premium-advanced-custom-fields-pro)[camcima/php-geohash

Refactored GeoHash package

1074.0k](/packages/camcima-php-geohash)[pqrs/l5b-crud

CRUD artisan command for rappasoft/laravel-5-boilerplate

2116.4k](/packages/pqrs-l5b-crud)[phlak/colorizer

Generate persistantly unique colors from a string.

1420.4k](/packages/phlak-colorizer)

PHPackages © 2026

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