Size: a a a

2020 October 14

ПЛ

Павел Ланчев... in Laravel Pro
Эльдарка
Это не сработает, ибо trialUsers - коллекция, а метод whereHas есть только у модели
разве коллекция ? если () то там  Builder, IIRC
источник

Э

Эльдарка in Laravel Pro
Andrey
trialUsers() возвращает коллекцию?
;facepalm: 11 часов вечера, внимательность улетучилась. Простите

triaslUsers - коллекция
users - связь
источник

Э

Эльдарка in Laravel Pro
У меня модель ProjectAdvertCampaign имеет связи с users (модель ProjectUser). Эти users имеют связь с payments (модель ProjectPayments)
Мне нужно получить количество пользователей, у которых были попытки платежа на 1440 рублей.
источник

ПЛ

Павел Ланчев... in Laravel Pro
Эльдарка
;facepalm: 11 часов вечера, внимательность улетучилась. Простите

triaslUsers - коллекция
users - связь
можно код trialUsers() ?
источник

АШ

Антон Шипулин... in Laravel Pro
@theeldarka

Вообщем что бы снять нагрузку надо перепилить так что бы была не коллекция, а связь и тогда вы одним запросом в базу будете дергать данные.

Ибо получается так что вы выдернули юзеров - допустим 1000

И после пробегаетесь по ним и для каждого юзера делаете запрос в базу
источник

DK

Dmitriy K. in Laravel Pro
А не легче одним простым запросом это сделать?
select count(id) from payments where payments.price = 1440 group by payments.user_id
источник

Э

Эльдарка in Laravel Pro
Павел Ланчев
можно код trialUsers() ?
источник

АШ

Антон Шипулин... in Laravel Pro
ProjectUser::where( ... )->whereHas('payments', fn ($q) => $q->where('price', 1440))->get();
источник

A

Andrey in Laravel Pro
Dmitriy K.
А не легче одним простым запросом это сделать?
select count(id) from payments where payments.price = 1440 group by payments.user_id
там не прямая связь юзера с платежами
источник

Э

Эльдарка in Laravel Pro
У меня это всё ещё висит на разных соединениях с абсолютно разными базами данных, потому приходится управлять ими "на лету"
источник

A

Andrey in Laravel Pro
Если запросом, то через джоин только
источник

ПЛ

Павел Ланчев... in Laravel Pro
this->users() превратит коллекцию в запрос, и примеры выше будут работать
источник

ПЛ

Павел Ланчев... in Laravel Pro
потому что тут where уже с коллекцией работает
источник

АШ

Антон Шипулин... in Laravel Pro
Эльдарка
У меня это всё ещё висит на разных соединениях с абсолютно разными базами данных, потому приходится управлять ими "на лету"
если юзеры в одной базе и платежи в другой, тогда одним запросом не получится и лучше что-то типа такого заюзать:

Payment::where('price', 1440)->groupBy('user_id')->count()
источник

Э

Эльдарка in Laravel Pro
Спасибо всем. Это сработало
источник

Э

Эльдарка in Laravel Pro
Но только после изменений с users в users()
источник

ПЛ

Павел Ланчев... in Laravel Pro
Эльдарка
Но только после изменений с users в users()
источник

Э

Эльдарка in Laravel Pro
Обращался к ней в первую очередь, но как обычно бывает - не видим то, что перед носом :D
источник

DK

Dmitriy K. in Laravel Pro
Кто пользуется SoftDeletes, каким образом объявляете отношение BelongsTo с withTrashed() ?
источник

DK

Dmitriy K. in Laravel Pro
источник