Bạn có thể thử xâu chuỗi chúng, tuy nhiên tôi không chắc nó sẽ mang lại kết quả bạn muốn. Thể muốn kiểm tra để chắc chắn
$query = Activity::all()->groupBy('performed_at_year_month')->groupBy('performer_id')->toJson();
tôi chỉ kiểm tra này và bạn là chính xác, nó không giữ gìn chìa khóa, mặc dù tôi nghĩ rằng tôi có thể đoán lý do tại sao. Nếu một khóa xảy ra giống nhau, mọi thứ sẽ bị ghi đè. Nó cũng có thể là khó khăn để xác định chìa khóa là gì và tổng thể cảm thấy một chút "hacky", nơi có khả năng là một giải pháp tốt hơn nhiều.
Tuy nhiên, tôi nghĩ tôi đã tìm ra cách thực hiện điều này.
$query = Activity::all();
$activities = new \Illuminate\Database\Eloquent\Collection($query);
$activities = $activities->groupBy('performed_at_year_month')->toArray() + $activities->groupBy('performer_id')->toArray();
echo json_encode($activities);
Cảm ơn! Điều này trả về dữ liệu được nhóm chính xác, nhưng nó không bao gồm các khóa (perform_at_year_month, performer_id) trên chuỗi json. Bạn có thể đề nghị sửa chữa cho điều đó không? –
Tôi đã cập nhật câu trả lời của mình. – user3158900
Câu trả lời tuyệt vời đã giúp tôi! Upvoting. – kevinabraham