orderByRequest($history, $request); // Filter $this->filterRequest( builder: $history, request: $request, filterKeys: [ 'keyword' => [ 'type' => self::F_TEXT, 'column' => 'serial_number_check.keyword' ], 'email' => [ 'type' => self::F_TEXT, 'column' => 'users.email' ], 'status' => [ 'type' => self::F_NOT_CONTAIN, 'column' => 'serial_number_check.status' ], 'from_date' => [ 'type' => self::F_THAN_EQ_DATETIME, 'column' => 'serial_number_check.created_at' ], 'to_date' => [ 'type' => self::F_LESS_EQ_DATETIME, 'column' => 'serial_number_check.created_at' ], ] ); $responseData = array_merge( $history->paginate($request->get('per_page'))->toArray(), ['status' => true] ); return response()->json($responseData); } public function showDetail(Request $request) { $id = $request->input('id'); $searchRow = SerialNumberCheck::find($id); if ($searchRow) { $user = $searchRow->user()->get(); $tracking = $searchRow->tracking()->get(); $trackingDetail = $tracking->map(function ($item) { return [ 'current_point' => $item->current_point, 'use_point' => $item->use_point, 'created_at' => $item->created_at ]; }); $response = [ 'data_search' => $searchRow, 'user' => $user[0], 'tracking' => $trackingDetail ]; return response()->json(['data' => $response, 'status' => true]); }else{ return response()->json(['data' => [], 'status' => false]); } } /** * Store a newly created resource in storage. */ public function store(Request $request): RedirectResponse { // } /** * Show the specified resource. */ public function show($id) { return view('admin::show'); } /** * Show the form for editing the specified resource. */ public function edit($id) { return view('admin::edit'); } /** * Update the specified resource in storage. */ public function update(Request $request, $id): RedirectResponse { // } /** * Remove the specified resource from storage. */ public function destroy($id) { // } }