Laravel withCount включает нулевые отношения - PullRequest
0 голосов
/ 25 апреля 2019

Я бы хотел, чтобы withCount включил количество несуществующих отношений.

Например, допустим, у меня есть таблица с именем people и таблица с именем pets.

* 1006.*people hasmany pets, но pets может иметь ноль people_id.Я хочу получить счетчик pets на people, но я также хочу включить pets, который не имеет people_id.

Я знаю, что могу просто сделать People::withCount('pets')->get(), но это не включает счетчик pets с нулем people_id.

Результат, который я ищу, будет примерно таким:

person_name | pets_count
John        | 2
Mike        | 3
Joan        | 0
NULL        | 20

Надеюсь, это имеет смысл.

Ответы [ 2 ]

1 голос
/ 25 апреля 2019

В этом случае вы можете использовать ROLLUP. Попробуйте. Это может помочь вам.

People::withCount('pets')->groupBy(\DB::raw('id WITH ROLLUP'))->get();

чтобы узнать больше, пожалуйста, отметьте это

0 голосов
/ 26 апреля 2019

Вы можете сделать что-то вроде этого:

People::selectRaw('peoples.*, COUNT(pets.id) AS pets_count')
->rightJoin('pets', 'people.id', '=', 'pets.people_id')
->get()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...