#視圖查詢
多個表不同表前綴問題
別名法
~~~
$data_list = self::view(['oxygen_withdraw_change'=>'withdraw_change'])
->view('admin_user', 'username', 'admin_user.id=oxygen_withdraw_change.uid', 'left')
->select();
~~~
table指定法,table前的view里一定要傳同樣表名
~~~
$data_list = self::view('oxygen_withdraw_change')
->table('oxygen_withdraw_change')
->view('admin_user', 'username', 'admin_user.id=oxygen_withdraw_change.uid', 'left')
->select();
~~~
# 復雜查詢
~~~
$post = [
'client_id' => $client_id,
'tab' => $tab,
'name' => $name,
'create_time' => $create_time,
'stage' => $stage,
'status' => $status,
'type' => $type
];
$client_index_status = Cases::$client_index_status;
$client_status = Cases::$client_status + Cases::$status;
$row_list = Cases::where(function($query) use($post, $client_index_status, $client_status){
$query->where('client_id', $post['client_id']);
if($post['tab'] == '待處理'){
$query->where('status', 'in', array_keys($client_index_status));
}
if($post['name']){
$name = $post['name'];
$query->where("(name like '%{$name}%' OR apply_no like '%{$name}%' OR applicant like '%{$name}%')");
}
if ($post['create_time']) {
$query->where('create_time', 'between time', explode(',', $post['create_time']));
}
if($post['stage'] && $post['status']){
$query->where('stage', $post['stage']);
switch ($post['stage']) {
case 0:
$status = array_keys([
"0001"=>"已撤回",
"0002"=>"稿件已確認",
"0003"=>"駁回放棄",
"0004"=>"結束已失效",
"0005"=>"駁回再申請",
"0006"=>"已失效"
], $post['status']);
break;
case 1:
$status = array_keys([
"1001"=>"待支付",
"1002"=>"待審核",
"1003"=>"待修改",
"1004"=>"分配中",
], $post['status']);
break;
case 2:
$status = array_keys([
"2001"=>"起名中",
"2002"=>"起名待確認",
"2003"=>"起名中",
"2004"=>"撰寫中",
"2005"=>"撰寫中",
"2006"=>"待確認",
"2007"=>"撰寫中",
], $post['status']);
break;
case 3:
$status = array_keys([
"3003"=>"已受理",
"3004"=>"補正中",
"3005"=>"補正中",
"3006"=>"補正待確認",
"3007"=>"補正中",
"3008"=>"遞交中",
"3009"=>"遞交中",
]
, $post['status']);
break;
case 4:
$status = ['4001'];
break;
case 5:
$status = array_keys([
"5001"=>"實審中",
"5002"=>"答復中",
"5003"=>"答復中",
"5004"=>"答復中",
"5005"=>"答復待確認",
"5006"=>"答復待遞交",
"5007"=>"答復中",
"5008"=>"駁回待確認",
"5009"=>"待授權"
]
, $post['status']);
break;
case 6:
$status = array_keys([
"6001"=>"生效中",
"6002"=>"待繳納年費",
], $post['status']);
break;
default:
break;
}
$query->where('status', 'in', $status);
}
if($post['type']){
$query->where('type', $post['type']);
}
})
->order('id DESC')
->paginate($list_rows)
->each(function ($item, $key) {
$item['stage_text'] = $item['stage_text'];
$item['client_status_text'] = $item['client_status_text'];
$item['left_days'] = $item['left_days'];
$item['applicant_text'] = $item['applicant_text'];
return $item;
});
~~~