Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menyelesaikan kumpulan mengikut dan menyusun mengikut isu dalam Laravel?

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粉823268006P粉823268006228 hari yang lalu416

membalas semua(1)saya akan balas

  • P粉561438407

    P粉5614384072024-03-29 11:08:04

    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();

    balas
    0
  • Batalbalas