最佳答案
我的应用程序动态构建并运行复杂查询来生成报告。在某些情况下,我需要得到多个,有点任意的日期范围,与所有其他参数相同。
因此,我的代码使用大量连接、位置、排序、限制等构建查询,然后运行查询。然后我要做的是跳入 Builder 对象,并更改定义要查询的日期范围的 where 子句。
到目前为止,我已经使日期范围设置在任何其他 where 之前,然后尝试手动更改 where 数组的相关属性中的值。像这样
$this->data_qry->wheres[0]['value'] = $new_from_date;
$this->data_qry->wheres[1]['value'] = $new_to_date;
然后我做了(已经做过一次了)
$this->data_qry->get();
不过没用。该查询仅与原始日期范围一起运行。即使我的方法奏效了,我仍然不喜欢它,因为它似乎是以一种不稳定的依赖(某种形式的耦合?).即,如果日期,其中没有设置第一,然后一切崩溃。
我从头开始重新设置整个查询,只是使用了不同的日期范围,但是这似乎有点奇怪,因为查询中的其他所有内容都需要与前一次使用时相同。
任何关于如何以正确/整洁的方式实现这一目标的想法都是非常受欢迎的。
谢谢,
杰夫