Skip to main content
Filters · Revision #1

How do I make my filter invertible?

How do I make my filter invertible?

As of 15/09/2026, the following filters support being inverted:

Type
Handle Method
Inverted Handle Method
Dropdown handleDropdown handleInvertedDropdown
Radio List handleRadioList
handleInvertedRadioList
Checkbox List handleCheckboxList
handleInvertedCheckboxList
Searchable Select handleSearchableSelect
handleInvertedSearchableSelect
Searchable Select When Over Count handleSearchableSelectWhenOverCount
handleInvertedSearchableSelectWhenOverCount
Searchable Select With Modal handleSearchableSelect
handleInvertedSearchableSelect
Searchable Select With Product Picker handleSearchableSelect
handleInvertedSearchableSelect

To enable inverted handling, set $inverted to true on the filter:

class RedirectsStatusAdminFilter extends \Aero\Admin\Filters\CheckboxListAdminFilter
{
    protected $invertible = true;

    protected function handleCheckboxList($selected, $query)
    {
        $query->whereIn('status', $selected);
    }

    protected function handleInvertedCheckboxList(array $selected, $query): void
    {
        $query->whereNotIn('status', $selected);
    }

    protected function checkboxes(): array
    {
        return [
            [
                'id' => '301',
                'name' => 'Moved Permanently (301)',
                'url' => $this->getUrlFor('301'),
            ],
            [
                'id' => '302',
                'name' => 'Found Redirect (302)',
                'url' => $this->getUrlFor('302'),
            ],
            [
                'id' => '308',
                'name' => 'Permanent Redirect (308)',
                'url' => $this->getUrlFor('308'),
            ],
        ];
    }

    protected function baseName(): string
    {
        return 'Status';
    }
}

The inverted handler is optional for Laravel 10+ (in most cases), as it is automatically generated using whereNot.