thinkphp视图查询
折腾了很纠结...
$map = array();
//获取公司cid
$map['Staff_salary.cid'] = $params['cid'];
$status = trim($request->post('status'));
if(!empty($status)){
$map['Staff_salary.status'] = $status;
}
$deptid = trim($request->post('deptid')); //部门
if (!empty($deptid)) {
$map['Staff_salary.deptid'] = $deptid;
}
$postid = trim($request->post('postid')); //岗位
if (!empty($postid)) {
$map['Staff_salary.postid'] = $postid;
}
//入职的区间查询 就是说在此期间的日期入职就行
$startime = trim($request->post('startime'));
$endtime = trim($request->post('endtime'));
if ($startime && $endtime) {
$map['Staff_salary.start_time'] = ['between', [$startime, $endtime]];
}elseif($startime){
$map['Staff_salary.start_time'] = ['egt', $startime];
}elseif($endtime){
$map['Staff_salary.start_time'] = ['elt', $endtime];
}
$likedata = trim($request->post('search_val')); //员工姓名,工号,手机号
if (!empty($likedata)) {
//$map['Staff.zname|Staff.staff_num|Staff.mobile|Staff.zpinyin|Staff.zpy'] = ['like', '%'.$likedata.'%']; //封装模糊查询 赋值到数组
$map['Staff.zname|Staff.staff_num|Staff.mobile|Staff.zpinyin|Staff.zpy'] = ['like', '%'.$likedata.'%'];
}
$said = trim($request->post('said'));
if(!empty($said)){
$map['said'] = $said;
}
$rel = db::view('Staff_salary','*')
->view('Company_dept','deptid,deptname','Company_dept.deptid = Staff_salary.deptid','LEFT')
->view('Company_postion','postid,postname','Company_postion.postid = Staff_salary.postid','LEFT')
->view('Staff','sid,zname,staff_num,zpinyin,zpy','Staff.sid =Staff_salary.sid','LEFT')
->where($map)
->paginate(10, false, ['type' => 'Ajaxbootstrap']);
默认的视图查询 用的inner方式 所以不需要查询条件不需要指定条件,但是用LEFT 和 RIGHT 就需要了....

浙公网安备 33010602011771号