MySQL のクエリがありますが、雄弁なモデル laravel 8 に変換する必要があります。クエリは以下のとおりです。
$query = "SELECT group_id FROM `chat_histories` join chat_group on chat_group.id = chat_histories.group_id where chat_group.is_group = 1 and chat_histories.created_at BETWEEN '$startDate' and '$endDate' and chat_histories.deleted_at is null group by group_id";
$query = "select count(group_id) as total_chat_thread from ($query) total_chat";
DB::select($query);
これまで私はこれを行ってきましたが、
ChatHistory::leftJoin('chat_group', 'chat_group.id', '=', 'chat_histories.group_id')
->selectRaw('count(*) as totals')
->where('chat_group.is_group', 1)
->whereBetween('chat_histories.created_at', [$startDate, $endDate])
->groupBy('chat_histories.group_id')
->count('totals');
しかし、これはリストを返しますが、リストの数が必要です。つまり、22 行が表示されていることを意味します。その 22 行が返される必要があります。
My Model ChatHistory と ChatGroup の関係
public function chatGroup() {
return $this->belongsTo(ChatGroup::class, 'group_id', 'id');
}
My Model ChatGroup と ChatHistory の関係
public function chatHistory() {
return $this->hasMany(ChatHistory::class,'group_id','id');
}
それを雄弁なモデルクエリに変換するのを手伝ってください よろしくお願いします。