diff --git a/app/Http/Controllers/Admin/ContractAllowableCityController.php b/app/Http/Controllers/Admin/ContractAllowableCityController.php index 8770449..d702f4e 100644 --- a/app/Http/Controllers/Admin/ContractAllowableCityController.php +++ b/app/Http/Controllers/Admin/ContractAllowableCityController.php @@ -128,25 +128,6 @@ class ContractAllowableCityController extends Controller ]); } - - /** - * 詳細参照(表示のみ) - */ - public function info($id) - { - $record = ContractAllowableCity::getByPk($id); - if (!$record) { - return redirect()->route('contract_allowable_cities')->with('error', 'データが存在しません'); - } - - return view('admin.contract_allowable_cities.edit', [ - 'record' => $record, - 'cityList' => City::getList(), - 'parkList' => Park::getList(), - 'mode' => 'info' - ]); - } - /** * 一括削除(単一・複数対応) */ @@ -174,37 +155,50 @@ class ContractAllowableCityController extends Controller } /** - * CSVエクスポート + * 契約許容市区マスタ CSVエクスポート */ public function export(Request $request) { - $filename = 'contract_allowable_cities_' . now()->format('Ymd_His') . '.csv'; + $filename = '契約許容市区マスタ_' . now()->format('YmdHis') . '.csv'; + // 検索条件でデータ取得 $list = ContractAllowableCity::search($request->all()); + // CSVファイル作成 + $file = fopen($filename, 'w+'); + fwrite($file, "\xEF\xBB\xBF"); // UTF-8 BOM追加 + + // ヘッダー行 + $columns = [ + '契約許容市区ID', + '市区ID', + '許容市区名', + '駐輪場ID', + '隣接区フラグ' + ]; + fputcsv($file, $columns); + + // データ行 + foreach ($list as $item) { + fputcsv($file, [ + $item->contract_allowable_city_id, + $item->city_id, + $item->contract_allowable_city_name, + $item->park_id, + $item->same_district_flag == 0 ? '隣接市' : 'その他', + ]); + } + + fclose($file); + + // ヘッダー設定 $headers = [ - 'Content-Type' => 'text/csv', - 'Content-Disposition' => "attachment; filename=\"$filename\"", + "Content-Type" => "text/csv; charset=UTF-8", + "Content-Disposition" => "attachment; filename={$filename}", ]; - return new StreamedResponse(function () use ($list) { - $handle = fopen('php://output', 'w'); - - // ヘッダー - fputcsv($handle, ['契約許容市区ID', '市区ID', '許容市区名', '駐輪場ID', '隣接区フラグ']); - - foreach ($list as $item) { - fputcsv($handle, [ - $item->contract_allowable_city_id, - $item->city_id, - $item->contract_allowable_city_name, - $item->park_id, - $item->same_district_flag == 0 ? '隣接市' : 'その他' - ]); - } - - fclose($handle); - }, 200, $headers); + // ダウンロード後に一時ファイル削除 + return response()->download($filename, $filename, $headers)->deleteFileAfterSend(true); } } \ No newline at end of file diff --git a/resources/views/admin/contract_allowable_cities/_form.blade.php b/resources/views/admin/contract_allowable_cities/_form.blade.php index c13ae22..b349615 100644 --- a/resources/views/admin/contract_allowable_cities/_form.blade.php +++ b/resources/views/admin/contract_allowable_cities/_form.blade.php @@ -3,6 +3,7 @@ @if ($errors->any())