我的应用程序动态构建并运行复杂的查询以生成报告.在某些情况下,我需要获得多个有点随意的日期范围,而所有其他参数都是相同的.
因此,我的代码使用一系列连接、位置、排序、限制等构建查询,然后运行查询.然后我想做的是跳转到Builder对象并更改定义要查询的日期范围的where子句.
到目前为止,我已经将日期范围设置在任何其他Where之前,然后try 手动更改Where数组的相关属性中的值.这样地;
$this->data_qry->wheres[0]['value'] = $new_from_date;
$this->data_qry->wheres[1]['value'] = $new_to_date;
那我就做(我已经做过一次了)
$this->data_qry->get();
但不管用.查询只在原始日期范围内运行.即使我的方式有效,我仍然不喜欢它,因为它似乎是一种不稳定的依赖(某种耦合?).Ie;如果没有先设定日期,那么一切都会分崩离析.
我从头开始重新设置整个查询,只是使用了不同的日期范围,但这似乎是因为查询中的所有其他内容都需要与上次使用时相同.
任何关于如何以正确/整洁的方式实现这一目标的 idea 都是非常受欢迎的.
谢谢
杰夫