Dcat Admin复杂搜索

1. 时间区间搜索#

搜索插件返回的数据是’2023-10-26’,但字段是时间戳,实现时间区间搜索#

 $filter->whereBetween('create_time', function ($query) {
       $query->where('create_time', '>=', strtotime($this->input['start']));
       $query->where('create_time', '<=', strtotime($this->input['end']));
 })->datetime();

效果#

Dcat Admin复杂搜索

2. 关联表字段搜索#

实现在 user_address 列表,查询对应手机号绑定的地址#

user 表#

id mobile
1 123456789
2 987654321

user_address 表#

id user_id address
1 1 杭州
2 2 北京
protected function grid()
{
  return Grid::make(UserAddress::with('member'), function (Grid $grid) {
        $grid->model()->orderBy('create_time', 'desc');// 默认排序
        $grid->column('id')->sortable();
        $grid->column('user_id');
        $grid->column('member.username', '手机号');
        $grid->column('address');
        $grid->column('create_time')->sortable();

        $grid->filter(function (Grid\Filter $filter) {
            $filter->equal('id');
            $filter->where('mobile', function ($query) {
                $query->whereHas('member', function ($query) {
                    $query->where('mobile', 'like', "%{$this->input}%");
                });
            }, '手机号');
        });
    });
}

效果(模糊搜索)#

Dcat Admin复杂搜索

本作品采用《CC 协议》,转载必须注明作者和本文链接
DaiChongWeb
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。