为了账号安全,请及时绑定邮箱和手机立即绑定

laravel怎么优雅的拼接where,处理whereIn与where数组查询的问题

laravel怎么优雅的拼接where,处理whereIn与where数组查询的问题

PHP
噜噜哒 2019-03-18 07:35:25
现在我要处理多条件搜索的问题 我的代码是这么处理的 switch ($where['type']) { //基层医院姓名 case 1: $condition [] = ['create_doctor_hospital', 'like', $where['name'] . "%"]; break; //基层医生姓名 case 2: $condition [] = ['create_doctor_name', 'like', $where['name'] . "%"]; break; //上级医生姓名 case 3: $doctor_model=UserModel::select('doctoruid') ->where('doctorname', 'like', $where['name'] . "%") ->get('doctoruid'); //todo:会存在匹配到多个叫刘江淮的医生 结果集要怎么处理 if(empty($doctor_model)){ break; }else{ foreach ($doctor_model as $doc){ $check_doctor_id[]=$doc->doctoruid; } } $condition[] =['check_doctor_uid','in',$check_doctor_id]; break; } } if (isset($where['start_time']) && isset($where['end_time'])) { $order_data = $this ->join(HDW_CHECKREPORT_ECG, $this->table . '.', '=', HDW_CHECKREPORT_ECG . '.id') ->select(HDW_CHECKREPORT_ECG . '.check_time', HDW_CHECKREPORT_ECG . '.patient_name', HDW_CHECKREPORT_ECG . '.patient_mobile', HDW_CHECKREPORT_ECG . '.patient_idcard', $this->table . '.orderid', $this->table . '.pay_money') ->whereBetween(HDW_ORDER . '.created_at', [$where['start_time'], $where['end_time'] + 24 * 60 * 60]) ->where($condition) ->get(); } else { //todo:sql待测试 $order_data = $this ->join('doctor_user', $this->table . '.check_doctor_uid', '=', 'doctor_user.doctoruid') ->join(HDW_PRODUCT, $this->table . '.product_id', '=', HDW_PRODUCT . '.productid') ->select($this->table . '.orderid', $this->table . '.patient_name', $this->table . '.product_id', $this->table . '.create_doctor_uid', $this->table . '.pay_money', $this->table . '.create_doctor_hospital', $this->table . '.check_doctor_uid', $this->table . '.create_doctor_name', 'doctor_user.doctorname', HDW_PRODUCT . '.name') ->where($condition) ->get(); } 由于前几个条件都是拼接数组 作为where条件传入的 在搜索上级医生的时候 由于会匹配到多个医生 所以需要使用到wherein 但是不知道怎么去拼接whereIn 或者 作为数组传进去 求sg大神解惑
查看完整描述

4 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

多谢了 明白了

查看完整回答
反对 回复 2019-03-18
  • 4 回答
  • 0 关注
  • 5245 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信