搜索框里边的选项特别的多,怎么查询?
添加可以搜索的,列表查询的时候不能搜索?
可以用自定义过滤器.
先增加一个过滤器字段
use Encore\Admin\Grid\Filter\AbstractFilter;
use Admin;
class Select
{
protected $options = [];
/**
* @var AbstractFilter
*/
protected $filter;
public function __construct($options = [])
{
$this->options = $options;
}
public function setFilter(AbstractFilter $filter)
{
$this->filter = $filter;
return $this;
}
public function name()
{
return 'select';
}
public function variables()
{
$class = str_replace('.', '_', $this->filter->getColumn());
Admin::script(<<<EOF
$('#filter-modal').removeAttr('tabindex'); // 使用modal时, 需要移除 tabindex 才能使用 select2 的文本搜索
$('.{$class}').select2({
allowClear: true,
placeholder: "选择"
});
EOF
);
return [
'options' => $this->options,
'class' => $class,
];
}
}
然后增加一个自定义的过滤器
use App\Support\Grid\Filters\Fields\Select;
use Encore\Admin\Grid\Filter\AbstractFilter;
class Equal extends AbstractFilter
{
public function select($options = [])
{
$select = new Select($options);
return $this->setField($select->setFilter($this));
}
public function render()
{
return view('grid.filters.select', $this->variables());
}
}
然后在表格构建的时候, 使用这个自定义的过滤器
$grid->addFilter(new Equal('name', '姓名'));
修改一下view,就可以了


Most helpful comment
修改一下view,就可以了

