Size: a a a

2020 October 14

Э

Эльдарка in Laravel Pro
Dmitriy K.
А пользователей сколько?
Один единственный, тестовая база
источник

SK

Sergey Kasyanov in Laravel Pro
Эльдарка
Из-за этого кода
trialUsers() - это связь?
источник

A

Andrey in Laravel Pro
trialUsers() возвращает коллекцию?
источник

Э

Эльдарка in Laravel Pro
Эльдарка
Модель рекламной кампании
Да, связь
источник

SK

Sergey Kasyanov in Laravel Pro
я к тому, что может скобки убрать, чтобы в each попали юзеры, а не querybuilder?
источник

SK

Sergey Kasyanov in Laravel Pro
да и зачем там each() ? может тут нужен where?
источник

A

Adel in Laravel Pro
все эти проблемы от незнания и неумения юзать SQL
источник

A

Adel in Laravel Pro
этот запрос - явный претендент на реализацию простым SQL запросом...
источник

DK

Dmitriy K. in Laravel Pro
У тебя trialUsers сначала получает всех пользователей, а потом ищет в них триальных
источник

DK

Dmitriy K. in Laravel Pro
А должен фильтровать триальных на уровне базы, а не на уровне Collection
источник

A

Andrey in Laravel Pro
+, тут нужно с запросом работать а не с коллекцией
источник

SK

Sergey Kasyanov in Laravel Pro
Эльдарка
Из-за этого кода
$this->trialUsers()->whereHas('payments', function($q) {$q->where('price', 1440);})->get()

может предполагалось вот это?
источник

ПЛ

Павел Ланчев... in Laravel Pro
return $this->trialUsers()->whereHas('payments', function $q {
$q->where('price',1400)
})->get();
источник

DK

Dmitriy K. in Laravel Pro
Плюс ты ещё подтягиваешь все их платежи
источник

АШ

Антон Шипулин... in Laravel Pro
Павел Ланчев
return $this->trialUsers()->whereHas('payments', function $q {
$q->where('price',1400)
})->get();
или если версия 7.4 то можно так

$this->trialUsers()->whereHas('payments', fn ($q) => $q->where('price', 1440))->get();
источник

АШ

Антон Шипулин... in Laravel Pro
А лучше в scope вывести еще для большей красоты)
источник

ПЛ

Павел Ланчев... in Laravel Pro
смысла в скоупе нет, если условие не переиспользуемое
источник

Э

Эльдарка in Laravel Pro
Антон Шипулин
или если версия 7.4 то можно так

$this->trialUsers()->whereHas('payments', fn ($q) => $q->where('price', 1440))->get();
Это не сработает, ибо trialUsers - коллекция, а метод whereHas есть только у модели
источник

АШ

Антон Шипулин... in Laravel Pro
Павел Ланчев
смысла в скоупе нет, если условие не переиспользуемое
я думаю price не просто так
источник

АШ

Антон Шипулин... in Laravel Pro
Эльдарка
Да, связь
Так связь или коллекция? @theeldarka
источник