diff --git a/app/Http/Controllers/Admin/MaintenanceController.php b/app/Http/Controllers/Admin/MaintenanceController.php index c9519f8..7dc238a 100644 --- a/app/Http/Controllers/Admin/MaintenanceController.php +++ b/app/Http/Controllers/Admin/MaintenanceController.php @@ -18,7 +18,7 @@ class MaintenanceController extends Controller */ public function index(): View { - $maintenances = (new Maintenance)->all(); + $maintenances = (new Maintenance)->orderByStartAt()->get(); return view('admin.maintenances.index', compact('maintenances')); } diff --git a/app/Http/Controllers/Api/MaintenanceController.php b/app/Http/Controllers/Api/MaintenanceController.php index 18d76a3..6fef1ea 100644 --- a/app/Http/Controllers/Api/MaintenanceController.php +++ b/app/Http/Controllers/Api/MaintenanceController.php @@ -10,7 +10,7 @@ class MaintenanceController extends Controller { public function __invoke(): JsonResponse { - $maintenances = (new Maintenance)->all(); + $maintenances = (new Maintenance)->orderByStartAt()->get(); return $this->success($maintenances); } diff --git a/app/Models/Maintenance.php b/app/Models/Maintenance.php index 64b1d46..16e34c5 100644 --- a/app/Models/Maintenance.php +++ b/app/Models/Maintenance.php @@ -30,6 +30,12 @@ class Maintenance extends Model 'module', ]; + // 根据 start_at 排序 + public function scopeOrderByStartAt($query) + { + return $query->orderBy('start_at', 'desc'); + } + public function module() { return $this->belongsTo(Module::class); diff --git a/database/migrations/2023_02_17_142300_create_maintenances_table.php b/database/migrations/2023_02_17_142300_create_maintenances_table.php index f6c358e..e6fe36c 100644 --- a/database/migrations/2023_02_17_142300_create_maintenances_table.php +++ b/database/migrations/2023_02_17_142300_create_maintenances_table.php @@ -27,9 +27,9 @@ public function up(): void $table->foreign('module_id')->references('id')->on('modules')->onDelete('set null'); // 开始于 - $table->dateTime('start_at')->nullable(); + $table->dateTime('start_at')->nullable()->index(); - $table->dateTime('end_at')->nullable(); + $table->dateTime('end_at')->nullable()->index(); }); }