= Model::where(...)
// return $query->get() # есть значения
$result_1 = $query->where(...)->get() #есть значения
$result_2 = $query->where(...)->get() #есть значения
$result_3 = $query->where(...)->get() #нет значений
// return $query->get() #нет значений. []
Потому что на каждый новый квери вы добавляете where и верятно в третьем варианте с тремя where у вас просто нет подходящих записей
Для каждого запроса отдельный query() К примеру $firstResult = Model::query()->get(); $secondResult = Model::query()->get();
А вообще, смысл использовать query?)
не совсем мне подходит. я хотел сократить количество кода и запросов, а не заниматься копипастом
А что нужно то? Пересечение или whereIn?
у всех result'ов одно общее значение param_1, а param_2 — отличается. общие я занес в переменную $query, остальные сделал по отдельности $query = Model::where('param_1', 1) $result_1 = $query->where('param_2', '<', 3) $result_2 = $query->where('param_2', 3) $result_3 = $query->where('param_2', '>', 5)
clone
Копипаст не всегда плохо :)
Тоже можно :)
спасибо, решил так: $result_i = with(clone $query)->where(...)
Обсуждают сегодня