Jul 9, 2020
0
Level 1
Make Filter Search for Query Builder
I have a code like this.
***
DB::raw("(SELECT TAPET_NAME FROM MA_TAPE_TYPE WHERE TAPET_CODE = a.MATERIAL_TYPE) as media_type"),
DB::raw("(SELECT TAPEF_NAME FROM MA_TAPE_FORMAT WHERE TAPEF_CODE = a.MATERIAL_FORMAT) as media_format"),
DB::raw("CASE WHEN a.iden_flag = 'P' THEN b.epi_title WHEN a.iden_flag = 'C' THEN b.prod_version_name WHEN a.iden_flag = 'M' THEN b.promo_name END as episode_title"),
DB::raw("(SELECT MAX (last_date) FROM run_master WHERE run_master.row_id_epi = w.row_id AND run_master.run_aired = 'Y') as last_tx")
***
When I call it for the search function,
if ($request->get('media_type') != '') {
$medias = $medias->where('a.material_type','like','%'.strtoupper($request->get('media_type')).'%');
}
if ($request->get('media_format') != '') {
$medias = $medias->where('a.material_format','like','%'.strtoupper($request->get('media_no')).'%');
}
if ($request->get('episode_title') != '') {
$medias = $medias->where('b.promo_name','like','%'.strtoupper($request->get('episode_title')).'%');
}
if ($request->get('last_tx') != '') {
$medias = $medias->where('last_date','like','%'.strtoupper($request->get('last_tx')).'%');
}
the code cannot display the data that it should.
If i write a regular query like this,
***
->select('a.MATERIAL_ID as media_no'),.....
***
And
***
if ($request->get('media_no') != '') {
$medias = $medias->where('a.material_id','like','%'.strtoupper($request->get('media_no')).'%');
}
***
I can call for the search function and successfully find the data. How should I write the correct code for my search syntax as I used the syntax for that somewhat complicated query
Please or to participate in this conversation.