diff --git a/app/Http/Controllers/RegularContractCreateController.php b/app/Http/Controllers/RegularContractCreateController.php index bfcf7cd..64edca5 100644 --- a/app/Http/Controllers/RegularContractCreateController.php +++ b/app/Http/Controllers/RegularContractCreateController.php @@ -99,29 +99,13 @@ class RegularContractCreateController extends Controller $parks_table = $query->skip(($page - 1) * $perPage)->take($perPage)->get(); if ($sort === 'park_ruby' || $sort === 'station_name_ruby') { - $locales = [ - 'ja_JP.UTF-8', - 'ja_JP.utf8', - 'ja_JP', - 'japanese', - 'Japanese_Japan.932', - 'Japanese_Japan', - 'ja', - ]; - foreach ($locales as $locale) { - $result = setlocale(LC_COLLATE, $locale); - \Log::info("setlocale try: {$locale} => {$result}"); - if ($result !== false) { - break; - } - } - $parks_table = $parks_table->sort(function ($a, $b) use ($order, $sort) { - // null対策 + $collator = new \Collator('ja_JP'); + $parks_table = $parks_table->sort(function ($a, $b) use ($order, $sort, $collator) { $a_val = $a->$sort ?? ''; $b_val = $b->$sort ?? ''; return $order === 'asc' - ? strcoll($a_val, $b_val) - : strcoll($b_val, $a_val); + ? $collator->compare($a_val, $b_val) + : $collator->compare($b_val, $a_val); })->values(); }