Trong Laravel 5.3.26, có thể nhóm kết quả của withCount
dựa trên một cột của mối quan hệ đó không? Ví dụ như sau, ví dụ:groupBởi trong withCount closure (Laravel 5.3.26)
$brands = \App\Models\Brand::withCount([ 'products' => function ($query) {
$query->groupBy('extra_attribute');
} ])
->get();
Đoạn mã cụ thể này trả về bộ sưu tập trống.
Có lẽ tôi chỉ không tìm đúng nơi trong tài liệu hoặc không googling đúng cách, nhưng tôi không thể tìm thấy bất cứ điều gì về kịch bản cụ thể này.
Ai đó có thể chỉ cho tôi đi đúng hướng?
Cảm ơn một nhóm!
Edit: Hiện nay tôi dường như đã giải quyết nó với điều này:
$brands = \App\Models\Brand::with([ 'products' => function ($query) {
$query->select('brand_id', 'extra_attribute')
->selectRaw('COUNT(*) AS products_count')
->groupBy('extra_attribute');
} ]);
và có thể lấy tổng số thông qua một cái gì đó giống như $brand->products->sum('products_count')
.
Cảm thấy cực kỳ bẩn thỉu và có thể là vậy. Đây có phải là cách duy nhất không?