• Laravel 链表查询多条件检索


    public function contractList()
        {
            if (!Auth::guard('admin')->user()->can('admin_yun_user_contract_list', YunUserBorrow::class)) {
                return BaseController::hasPower('list');
            }
    
            $limit = (int)Input::get('limit', 15);
            //查询条件
            $name = Input::get('name');
            $created_at = Input::get('created_at');
            $work_no = Input::get('work_no');
            $status = Input::get('status');
            $id_no = Input::get('id_no');
            //拆解一行一个止
            //名字拆分
            if ($name) {
                $name_arr = array_unique(preg_split('/s+/', $name));
            } else {
                $name_arr = [];
            }
    
            if ($work_no) {
                $work_no_arr = array_unique(preg_split('/s+/', $work_no));
            } else {
                $work_no_arr = [];
            }
    
            if ($id_no) {
                $id_no_arr = array_unique(preg_split('/s+/', $id_no));
            } else {
                $id_no_arr = [];
            }
    
            $list = ESignLog::leftjoin('yun_user_entry', 'yun_user_entry.id', '=', 'e_sign_logs.user_id')
                ->select('e_sign_logs.*', 'yun_user_entry.name', 'yun_user_entry.work_no')
                ->when($name_arr, function ($query) use ($name_arr) {
                    return $query->whereIn('yun_user_entry.name', $name_arr);
                })->when($work_no_arr, function ($query) use ($work_no_arr) {
                    return $query->whereIn('yun_user_entry.work_no', $work_no_arr);
                })->when($id_no_arr, function ($query) use ($id_no_arr) {
                    return $query->whereIn('yun_user_entry.id_no', $id_no_arr);
                })
                ->when(isset($status), function ($query) use ($status) {
                    $query->where('e_sign_logs.status', $status);
                })
                ->when($created_at, function ($query) use ($created_at) {
                    $created_at_time = explode('至', $created_at);
                    $start_day = $created_at_time[0];
                    $end_day = $created_at_time[1] . ' 23:59:59';
                    $query->where('e_sign_logs.created_at', '>=', $start_day);
                    $query->where('e_sign_logs.created_at', '<=', $end_day);
                })
                ->orderBy('id', 'desc')
                ->paginate($limit);
    
            if ($list) {
                $list = $list->toArray();
                foreach ($list['data'] as $key => $val) {
                    $list['data'][$key]['dst_file_path'] = asset($val['dst_file_path']);
                }
            }
    
            return Response::json($list);
        }
  • 相关阅读:
    Docker容器启动时初始化Mysql数据库
    使用Buildpacks高效构建Docker镜像
    Mybatis 强大的结果集映射器resultMap
    Java 集合排序策略接口 Comparator
    Spring MVC 函数式编程进阶
    换一种方式编写 Spring MVC 接口
    【asp.net core 系列】6 实战之 一个项目的完整结构
    【asp.net core 系列】5 布局页和静态资源
    【asp.net core 系列】4. 更高更强的路由
    【Java Spring Cloud 实战之路】- 使用Nacos和网关中心的创建
  • 原文地址:https://www.cnblogs.com/sgm4231/p/13297152.html
Copyright © 2020-2023  润新知