create public search
This commit is contained in:
@@ -17,6 +17,10 @@ class QuickSearchController extends Controller
|
||||
return view("quick-search.index");
|
||||
}
|
||||
|
||||
public function public_search(){
|
||||
return view("public-search.index");
|
||||
}
|
||||
|
||||
public function search_result(Request $request){
|
||||
$keyword = $request->get("keyword");
|
||||
|
||||
@@ -60,6 +64,42 @@ class QuickSearchController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
public function public_search_datatable(Request $request)
|
||||
{
|
||||
try {
|
||||
// Gunakan subquery untuk performa yang lebih baik dan menghindari duplikasi
|
||||
$query = PbgTask::select([
|
||||
'pbg_task.*',
|
||||
DB::raw('(SELECT name_building FROM pbg_task_details WHERE pbg_task_details.pbg_task_uid = pbg_task.uuid LIMIT 1) as name_building'),
|
||||
DB::raw('(SELECT nilai_retribusi_bangunan FROM pbg_task_retributions WHERE pbg_task_retributions.pbg_task_uid = pbg_task.uuid LIMIT 1) as nilai_retribusi_bangunan')
|
||||
])
|
||||
->orderBy('pbg_task.id', 'desc');
|
||||
|
||||
if ($request->filled('search')) {
|
||||
$search = trim($request->get('search'));
|
||||
$query->where(function ($q) use ($search) {
|
||||
$q->where('pbg_task.registration_number', 'LIKE', "%$search%")
|
||||
->orWhere('pbg_task.name', 'LIKE', "%$search%")
|
||||
->orWhere('pbg_task.owner_name', 'LIKE', "%$search%")
|
||||
->orWhereExists(function ($subQuery) use ($search) {
|
||||
$subQuery->select(DB::raw(1))
|
||||
->from('pbg_task_details')
|
||||
->whereColumn('pbg_task_details.pbg_task_uid', 'pbg_task.uuid')
|
||||
->where('pbg_task_details.name_building', 'LIKE', "%$search%");
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
return response()->json($query->paginate());
|
||||
} catch (\Throwable $e) {
|
||||
Log::error("Error fetching datatable data: " . $e->getMessage());
|
||||
return response()->json([
|
||||
'message' => 'Terjadi kesalahan saat mengambil data.',
|
||||
'error' => $e->getMessage(),
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user