PHPackages                             dddeeemmmooonnn/nova-multicolumn-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. [Admin Panels](/categories/admin)
4. /
5. dddeeemmmooonnn/nova-multicolumn-filter

ActiveLibrary[Admin Panels](/categories/admin)

dddeeemmmooonnn/nova-multicolumn-filter
=======================================

A Laravel Nova multicolumn filter.

v0.6.3(5y ago)8125.2k↑120.9%4[7 issues](https://github.com/dddeeemmmooonnn/nova-multicolumn-filter/issues)MITVuePHP &gt;=7.1.0

Since Jul 13Pushed 5y ago1 watchersCompare

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

READMEChangelogDependencies (1)Versions (13)Used By (0)

A Laravel Nova multicolumn filter
=================================

[](#a-laravel-nova-multicolumn-filter)

Filter for several columns

### Demo

[](#demo)

[![Demo](https://camo.githubusercontent.com/0d4b05b94b80dbb61e7c2a2e60542e0b82a5e29ace0ec4b863b3046fc4faa7cf/687474703a2f2f672e7265636f726469742e636f2f3069767439594a6370792e676966)](https://camo.githubusercontent.com/0d4b05b94b80dbb61e7c2a2e60542e0b82a5e29ace0ec4b863b3046fc4faa7cf/687474703a2f2f672e7265636f726469742e636f2f3069767439594a6370792e676966)

### Installation

[](#installation)

Run this command in your Laravel Nova project:

`composer require dddeeemmmooonnn/nova-multicolumn-filter`

### Usage

[](#usage)

#### Simplified:

[](#simplified)

```
new NovaMulticolumnFilter([
        'column' => '', //columns
    ],
    $manual_update = false, // Apply filter with the button
    $default_column_type = 'text', // Default input type
    $name = 'filter' // Filter name
),

```

#### Detailed:

[](#detailed)

Intended use: extend filter, add different options and operators, use it with column declaration in constructor. Or extend again, and add column declaration there.

Create a filter with `artisan`

```
 $ php artisan nova:filter UserFilter
```

Extend your filter from the NovaMulticolumnFilter and customize operators, options, columns.

Сomprehensive example:

```
use dddeeemmmooonnn\NovaMulticolumnFilter\NovaMulticolumnFilter;

class UserFilter extends NovaMulticolumnFilter
{
    public $name = 'Filters';

    protected $columns = [
        // Simple text column declaration
        'column1' => '',

        // Customizing all
        'column2' => [
            'type' => 'email',
            'label' => 'E-mail',
            'operators' => [
                '=' => '=',
                //...
            ],
            'defaultOperator' => '=',
            'defaultValue' => 'admin@admin.com',
            'preset' => true,
            'apply' => 'customApply',
            'placeholder' => 'input placeholder'
        ],

        // For checkboxes
        'column3' => [
            'type' => 'checkbox',
            'label' => 'Checkbox',
            'defaultValue' => 'anything', // Not empty = checked
        ],

        // Select type, options in array
        'column4' => [
            'type' => 'select',
            'label' => 'Select',
            'options' => [
                '1' => 'First',
                '2' => 'Second',
                //...
            ],
            'defaultValue' => '1',
        ],

        // Select type, options in optionsCustomOptions() method
        'column5' => [
            'type' => 'select',
            'label' => 'Select again',
            'options' => 'customOptions',
            'defaultValue' => '1',
        ],

        // operators in operatorsCustomOperators() method
        'column6' => [
            'type' => 'number',
            'label' => 'Number',
            'operators' => 'customOperators',
            'defaultValue' => '1',
        ],

        // Date type
        'column7' => [
            'type' => 'date',
            'label' => 'Date',
        ],

        // Using one db column in different declarations
        'column8' => [
            'type' => 'date',
            'label' => 'Date',
            'column' => 'column7',
        ],
    ];

    protected function operatorsCustomOperators()
    {
        return [
            '=' => 'Equals',
            '>' => 'Greater',
            '' => '>',
            '>=' => '>=',
            ' 'label']` or string indicating method name. Method must be declared as `operatorsYourName`
- options - for `select` type, similarly operators, but method naming starts with `options`
- defaultOperator
- defaultValue
- preset - preset columns when filter is empty, applied after opening filters menu
- column - column name, if you want to use several types for one column
- apply - custom apply method, that will filter the column
- placeholder - &lt;input&gt; placeholder

##### Localization:

[](#localization)

add to nova translation json file (resources/lang/vendor/nova/&lt;lang&gt;.json)

```
    "multicolumn.select_empty_label": "—",
    "multicolumn.add": "Add",
    "multicolumn.apply": "Apply"

```

### Authors

[](#authors)

- Dmitry Turov

The filter inspired by [philperusse/nova-column-filter](https://github.com/philperusse/nova-column-filter) and [beyondcode/nova-filterable-cards](https://github.com/beyondcode/nova-filterable-cards)

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance3

Infrequent updates — may be unmaintained

Popularity39

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 93.8% 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

Every ~34 days

Recently: every ~65 days

Total

12

Last Release

2129d ago

### Community

Maintainers

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

---

Top Contributors

[![dddeeemmmooonnn](https://avatars.githubusercontent.com/u/7344350?v=4)](https://github.com/dddeeemmmooonnn "dddeeemmmooonnn (15 commits)")[![4n70w4](https://avatars.githubusercontent.com/u/38257723?v=4)](https://github.com/4n70w4 "4n70w4 (1 commits)")

---

Tags

laravelnova

### Embed Badge

![Health badge](/badges/dddeeemmmooonnn-nova-multicolumn-filter/health.svg)

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

###  Alternatives

[khalin/nova-link-field

A Laravel Nova Link field.

31562.2k2](/packages/khalin-nova-link-field)[digital-creative/nova-dashboard

The missing dashboard for nova.

7169.3k1](/packages/digital-creative-nova-dashboard)[harrald/nova-combobox-filter

A Laravel Nova combobox filter. Supports selecting multiple items

13105.5k](/packages/harrald-nova-combobox-filter)[marianvlad/nova-ssl-card

A Laravel Nova card for SSL certificates.

1219.9k](/packages/marianvlad-nova-ssl-card)

PHPackages © 2026

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