PHPackages                             resham/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. [Search &amp; Filtering](/categories/search)
4. /
5. resham/nova-dependent-filter

ActiveLibrary[Search &amp; Filtering](/categories/search)

resham/nova-dependent-filter
============================

A dependent filter for laravel nova

v1.0.0(3y ago)368.2k—9.5%6[2 issues](https://github.com/resham57/nova-dependent-filter/issues)MITPHPPHP &gt;=7.3

Since Feb 4Pushed 3y ago2 watchersCompare

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

READMEChangelogDependenciesVersions (2)Used By (0)

Dependent Filter for Laravel Nova 4
===================================

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

[![Latest Stable Version](https://camo.githubusercontent.com/a6ac0ec790b5148b798437a0c6f30b24944fa8f49bb769d79681cd9aa04b8370/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f72657368616d2f6e6f76612d646570656e64656e742d66696c7465722e7376673f7374796c653d666c6174)](https://packagist.org/packages/resham/nova-dependent-filter)[![License](https://camo.githubusercontent.com/8f06447032b9f6aeaa72ea0092f88d659b9afb94a693e8bf1dc277b55c064005/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f72657368616d2f6e6f76612d646570656e64656e742d66696c7465722e7376673f7374796c653d666c6174)](https://packagist.org/packages/resham/nova-dependent-filter)[![Total Downloads](https://camo.githubusercontent.com/03b458e0c72555e3eee4386481f52f8dad8694643a9fd3567c793786a13c387b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f72657368616d2f6e6f76612d646570656e64656e742d66696c746572)](https://packagist.org/packages/resham/nova-dependent-filter)

This is a package to integrate a dependent filter with Laravel Nova version 4.

Requirements
------------

[](#requirements)

- [PHP &gt;= 7.3](http://php.net/)
- [Laravel Framework](https://github.com/laravel/framework)
- [Laravel Nova v4](https://nova.laravel.com/)

Installation
------------

[](#installation)

Require this package with composer.

```
composer require resham/nova-dependent-filter
```

Usage
-----

[](#usage)

### Normal Usage

[](#normal-usage)

Once the Installation is complete, you can use it by creating a filter class.

```
use Resham\NovaDependentFilter\DependentFilter;

class CountryFilter extends DependentFilter
{
    /**
     * Name of filter.
     *
     * @var string
     */
    public $name = 'Country';

    /**
     * The filter's attribute. Also, it is key of filter.
     *
     * @var string
     */
    public $key = 'country_code';

    /**
     * Get the filter's available options.
     *
     * @param  \Laravel\Nova\Http\Requests\NovaRequest  $request
     * @param  array $filters
     * @return array
     */
    public function options(NovaRequest $request, array $filters = [])
    {
        return Country::pluck('name', 'country_code');
    }
}
```

### Dependent Usage

[](#dependent-usage)

Let's have a dependent filter state that depends on the country, we can achieve the dynamic-dependent filter

#### Parent Filter

[](#parent-filter)

Define the parent filter(on which other filters depend)

```
use Resham\NovaDependentFilter\DependentFilter;

class CountryFilter extends DependentFilter
{
    /**
     * Name of filter.
     *
     * @var string
     */
    public $name = 'Country';

    /**
     * The filter's attribute. Also, it is key of filter.
     *
     * @var string
     */
    public $key = 'country_code';

    /**
     * The other filters key whose are depends on this filter.
     *
     * @var string[]
     */
    public $parentOf = ['state'];

    /**
     * Get the filter's available options.
     *
     * @param  \Laravel\Nova\Http\Requests\NovaRequest  $request
     * @param  array $filters
     * @return array
     */
    public function options(NovaRequest $request, array $filters = [])
    {
        return Country::pluck('name', 'country_code');
    }
}
```

> Note: Don't forget to define the key of the child filter on the `$parentOf` property.

#### Child Filter

[](#child-filter)

Let's define the child filter which is depends on parent filter.

```
use Resham\NovaDependentFilter\DependentFilter;

class StateFilter extends DependentFilter
{
    /**
     * Name of filter.
     *
     * @var string
     */
    public $name = 'State';

    /**
     * The filter's attribute. Also, it is key of filter.
     *
     * @var string
     */
    public $key = 'state';

    /**
     * Get the filter's available options.
     *
     * @param  \Laravel\Nova\Http\Requests\NovaRequest  $request
     * @param  array $filters
     * @return array
     */
    public function options(NovaRequest $request, array $filters = [])
    {
        return State::where('country_code', $filters['country_code'] ?? '')
                        ->pluck('name', 'id');
    }
}
```

Registering Filters
-------------------

[](#registering-filters)

We can register the filter as we define with nova.

```
/**
 * Get the filters available for the resource.
 *
 * @param  \Laravel\Nova\Http\Requests\NovaRequest  $request
 * @return array
 */
public function filters(NovaRequest $request)
{
    return [
        new CountryFilter
    ];
}
```

Also, you can use `CountryFilter::make()`

```
/**
 * Get the filters available for the resource.
 *
 * @param  \Laravel\Nova\Http\Requests\NovaRequest  $request
 * @return array
 */
public function filters(NovaRequest $request)
{
    return [
        CountryFilter::make()
    ];
}
```

Security
--------

[](#security)

If you discover any issues, please email at .

Reference
---------

[](#reference)

- [Awesome Nova Dependent Filter](https://github.com/awesome-nova/dependent-filter)

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance7

Infrequent updates — may be unmaintained

Popularity37

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1199d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/8dcdad40cd96127054193780622ab88cddbf7645497bdd5edf773451dac9c173?d=identicon)[resham](/maintainers/resham)

---

Top Contributors

[![resham57](https://avatars.githubusercontent.com/u/26865520?v=4)](https://github.com/resham57 "resham57 (15 commits)")

---

Tags

dependent-searchlaravelnovanovav4laravelfilternovadependent

### Embed Badge

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

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

###  Alternatives

[outl1ne/nova-detached-filters

This Laravel Nova package allows you to detach filters from the filter dropdown

64343.5k](/packages/outl1ne-nova-detached-filters)[outl1ne/nova-input-filter

An input filter for Laravel Nova

24822.7k](/packages/outl1ne-nova-input-filter)[suenerds/nova-searchable-belongs-to-filter

Searchable Nova filter for belongsTo relationships.

29516.9k](/packages/suenerds-nova-searchable-belongs-to-filter)[nrml-co/nova-big-filter

A nice looking filter menu thats always open.

35310.9k](/packages/nrml-co-nova-big-filter)[awesome-nova/dependent-filter

Dependent filters for Laravel Nova

26184.1k](/packages/awesome-nova-dependent-filter)[awesome-nova/filter-card

A Laravel Nova card.

25126.1k](/packages/awesome-nova-filter-card)

PHPackages © 2026

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