получить счет в присоединении к нескольким таблицам - PullRequest
0 голосов
/ 17 мая 2018

У меня есть 3 таблицы с именами user, group и user_has_group. Я присоединяюсь к этим таблицам, используя eloquent. Все работает просто отлично, но мне нужно что-то большее. Мне нужно выяснить, что у какой группы сколько пользователей. Вот код, который я использовал:

$result = UserHasGroup
                ::join('group', 'user_has_group.group_id', '=', 'group.id')
                ->join('user', 'group.created_by', '=', 'user.id')
                ->where('user_has_group.user_id', '=', $user -> id)
                ->select("user.name as created_by",
                    'group.created_at',
                    'user_has_group.user_id',
                    'group.name as group_name')
                ->getQuery()
                ->get();

и вот ответ:

{
    "successful": [
        {
            "created_by": "TUSHAR13",
            "created_at": "2018-05-11 18:04:38",
            "user_id": "5",
            "group_name": "DSGJA"
        },
        {
            "created_by": "TUSHAR13",
            "created_at": "2018-05-11 18:10:17",
            "user_id": "5",
            "group_name": "V76OL"
        },
        {
            "created_by": "TUSHAR13",
            "created_at": "2018-05-10 00:00:00",
            "user_id": "5",
            "group_name": "qwerr"
        }
    ]
}

Теперь я не могу понять, куда добавить групповой запрос и подсчитать запрос. Мне нужна помощь.

1 Ответ

0 голосов
/ 17 мая 2018
$result = UserHasGroup
                ::join('group', 'user_has_group.group_id', '=', 'group.id')
                ->join('user', 'group.created_by', '=', 'user.id')
                ->select("user.name as created_by",
                    'group.created_at',
                    'user_has_group.user_id',
                    'group.name as group_name', DB::raw('count(*) as total'))
                ->groupBy('user_id')
                ->getQuery()
                ->get();

Вы должны использовать DB::raw('Count(*)') в select(), затем использовать группу по user_id.

надеюсь, это поможет.

...