zoukankan      html  css  js  c++  java
  • 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);
        }
  • 相关阅读:
    【Spring Framework】10、代理模式
    【Spring Framework】8、使用注解开发
    Codeforces 516E
    AtCoder Grand Contest 055 题解
    Codeforces 1606F
    贪心/构造/DP 杂题选做
    整数拆分最大乘积
    CSP-S2021 被碾压记
    洛谷 P2791
    LCT 小记
  • 原文地址:https://www.cnblogs.com/sgm4231/p/13297152.html
Copyright © 2011-2022 走看看