Bagaimana untuk menyelesaikan kumpulan mengikut dan menyusun mengikut isu dalam Laravel?
P粉823268006
P粉823268006 2024-03-28 18:08:15
0
1
434

Saya mempunyai senarai yang dipanggil maintenance 的数据库,其中有一个名为 cost 的字段。我现在想按 month 和year 获取成本总和,并按 month 和year dalam susunan menurun. Bolehkah sesiapa membantu saya?

Ini yang saya cuba

$MaintenanceStats = Maintenance::oldest()
    ->get()
    ->groupBy(function($val) {
         return Carbon::parse($val->from)->format('F');
     })
     ->take(7);

Saya mendapat objek koleksi ini di bawah dan ia berfungsi dengan baik. Tetapi bagaimanakah saya boleh mengumpulkannya mengikut bulan dan tahun dan kemudian mengisihnya dalam susunan menurun dan bukannya hanya mengumpulkan mengikut bulan? Juga, saya hanya memerlukan jumlah perbelanjaan bulanan; Saya tidak memerlukan semua rekod penyelenggaraan.

Illuminate\Database\Eloquent\Collection {#1517 ▼ // app\Http\Controllers\GeneralController.php:40
  #items: array:5 [▼
    "September" => Illuminate\Database\Eloquent\Collection {#1452 ▶}
    "July" => Illuminate\Database\Eloquent\Collection {#1530 ▶}
    "January" => Illuminate\Database\Eloquent\Collection {#1519 ▶}
    "November" => Illuminate\Database\Eloquent\Collection {#1520 ▶}
    "December" => Illuminate\Database\Eloquent\Collection {#1521 ▶}
  ]
  #escapeWhenCastingToString: false
}

P粉823268006
P粉823268006

membalas semua(1)
P粉561438407

Cara terbaik ialah menggunakan pertanyaan pangkalan data untuk melakukan ini, tetapi anda juga memerlukan pertanyaan mentah:

$maintenanceStats = Maintenance::selectRaw("year(`from`) AS year, month(`from`) AS month, sum(cost) AS cost_total")
   ->groupByRaw("year(`from`)")
   ->groupByRaw("month(`from`)")
   ->orderBy('year')
   ->orderBy('month')
   ->get();
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan