How do I create a searchable select admin filter?

To create an options date range admin filter you need to create a class that extends Aero\Admin\Filters\SearchableSelectAdminFilter and implements the handleSearchableSelect, model, modelName, and searchRoute methods.


handleSearchableSelect Method

This method is executed when an option has been selected and accepts 2 parameters. The first parameter is an array of selected values and the second parameter is the query.


model Method

This method needs to return an instance of the model that will be used for searching. This will be used to automatically fetch the selected data.


modelName Method

This method defines the name that should be used in the searchable select for the selected options.


searchRoute Method

This method defines the route that will be used by the searchable select component to fetch data.



namespace Aero\Admin\Filters\Order;

use Aero\Admin\Filters\SearchableSelectAdminFilter;
use Aero\Cart\Models\Discount;
use Illuminate\Database\Eloquent\Model;

class OrderDiscountAdminFilter extends SearchableSelectAdminFilter
   protected $multiple = true;

   protected function handleSearchableSelect(array $selected, $query)
       $query->where(function ($query) use ($selected) {
           $query->whereHas('discounts', static function ($query) use ($selected) {
               $query->whereIn('id', $selected);

   protected function model(): Model
       return new Discount();

   protected function modelName(Model $model)
       return $model->code ?? ($model->name ?? 'Discount #'.$model->id);

   protected function searchRoute(): string
       return route('');

Articles in this section

Was this article helpful?
0 out of 0 found this helpful