Laravel 查询生成器 - 重用已修订的 where 语句的查询
2022-08-30 08:25:56
我的应用程序动态生成并运行复杂的查询以生成报告。在某些情况下,我需要获取多个有点任意的日期范围,所有其他参数都相同。
因此,我的代码使用一堆联接、where、排序、限制等来构建查询,然后运行查询。然后,我想做的是跳转到Builder对象并更改定义要查询的日期范围的where子句。
到目前为止,我已经做到了,日期范围设置在任何其他位置之前,然后尝试手动更改where数组的相关属性中的值。像这样;
$this->data_qry->wheres[0]['value'] = $new_from_date;
$this->data_qry->wheres[1]['value'] = $new_to_date;
然后我做(已经做过一次了)
$this->data_qry->get();
虽然不起作用。查询仅使用原始日期范围运行。即使我的方式奏效了,我仍然不喜欢它,因为它似乎被一种不稳定的依赖性(某种耦合?)所击中。小如果日期没有首先设置,那么一切都会分崩离析。
我可以从头开始重新设置整个查询,只是使用不同的日期范围,但这似乎很糟糕,因为查询中的其他所有内容都需要与上次使用时相同。
任何关于如何以正确/整洁的方式实现这一点的想法都非常欢迎。
谢谢
杰夫