Мое приложение динамически создает и запускает сложные запросы для генерации отчетов. В некоторых случаях мне нужно получить несколько, несколько произвольных диапазонов дат, причем все остальные параметры одинаковы.Laravel query builder - повторное использование запроса с поправками, где оператор
Так что мой код строит запрос с кучей объединений, wheres, sorts, limits и т. Д., А затем запускает запрос. То, что я тогда хочу сделать, - это перейти в объект Builder и изменить предложения where, которые определяют диапазон дат для запроса.
До сих пор я сделал это так, чтобы диапазон дат был настроен перед любыми другими объектами, а затем попытался вручную изменить значение в соответствующем атрибуте массива wheres. Как это;
$this->data_qry->wheres[0]['value'] = $new_from_date;
$this->data_qry->wheres[1]['value'] = $new_to_date;
Тогда я (будучи уже сделал это однажды уже)
$this->data_qry->get();
не работает, хотя. Запрос выполняется только с исходным диапазоном дат. Даже если бы мой способ работал, мне все равно это не понравилось бы, хотя, похоже, оно пробито с неустойчивой зависимостью (какая-то связь?). Т.е.; если дата не устанавливается сначала, тогда все это разваливается.
Любые идеи о том, как достичь этого правильным/опрятным способом, очень приветствуются.
Спасибо,
Geoff
Это выглядело хорошо, поэтому в конечном итоге, используя что-то вдоль эти линии. Мне пришлось немного изменить поток в моем приложении, но я думаю, что это было к лучшему, в конце концов. Ура! –