user()->id; $files = ExportFiles::where('user_id', $user_id)->get(); [$draw, $totalRecords, $totalRecordswithFilter, $data_arr] = $this->getData($request); $response = array( "draw" => intval($draw), "iTotalRecords" => $totalRecords, "iTotalDisplayRecords" => $totalRecordswithFilter, "aaData" => $data_arr ); // dd($response); echo json_encode($response); exit; } // get data #region 取得資料 function getData($request) { $user_id = auth('api')->user()->id; #region Request 搜尋值 if (isset($request->searchByFromdate)) $searchByFromdate = $request->searchByFromdate; if (isset($request->searchByTodate)) $searchByTodate = $request->searchByTodate; #endregion #region DataTable 搜尋屬性 if (!isset($request->export)) { $draw = $request->get('draw'); $start = $request->get("start"); $rowperpage = $request->get("length"); // Rows display per page $columnIndex_arr = $request->get('order'); $columnName_arr = $request->get('columns'); $order_arr = $request->get('order'); $search_arr = $request->get('search'); $columnIndex = $columnIndex_arr[0]['column']; // Column index $columnName = $columnName_arr[$columnIndex]['data']; // Column name $columnSortOrder = $order_arr[0]['dir']; // asc or desc $searchValue = $search_arr['value']; // Search value } else { $draw = 0; } #endregion // Fetch records $records = ExportFiles::query(); $records->where('user_id', $user_id); $totalRecords = $records->count(); if (isset($columnName)) $records->orderBy($columnName, $columnSortOrder); if (isset($searchValue)) { $records->where(function ($query) use ($searchValue) { $query->where('remark', 'like', '%' . $searchValue . '%'); }); } //時間限制 if (isset($searchByFromdate)) $records->where('created_at', ">", $searchByFromdate . ' 00:00:00'); if (isset($searchByTodate)) $records->where('created_at', "<", $searchByTodate . ' 23:59:59'); $totalRecordswithFilter = $records->count(); #region DataTable 分頁(報表不分頁) if (!isset($request->export)) { if (isset($start)) $records->skip($start); if (isset($rowperpage)) $records->take($rowperpage); } #endregion $records = $records->get(); #region 資料處理 $data_arr = array(); $sno = 1 + ($request->get('start') ?? 0); foreach ($records as $record) { $data_arr[] = array( "id" => $sno++, // $record->id, "display_name" => $record->remark, "user" => User::find($record->user_id)->name ?? '', "created_at" => Carbon::parse($record->created_at)->format('Y-m-d H:i:s'), "name" => "$record->name", ); } #endregion return [$draw, $totalRecords, $totalRecordswithFilter, $data_arr]; } #endregion // 下載檔案 透過檔案名稱 public function downloadFile(Request $request, $path) { $file = ExportFiles::where('name', $path)->first(); $path = storage_path('app/' . $file->path . '/' . $file->name); // 檔案名稱 $name = $file->remark; // 副檔名 $ext = pathinfo($path, PATHINFO_EXTENSION); return response()->download($path, $name . '.' . $ext); } }