【发布时间】:2022-01-06 04:55:22
【问题描述】:
我需要使用whereBetween 子句构建查询,但有一个转折,我没有找到适用于我的案例的答案。我需要,因为当from 参数不存在时,将其视为从头开始查询。如果to 参数不存在,则需要查看前面提到的参数之后的所有内容。
当前查询:
Vehicle::whereBetween("updated_at", [$dates->start_date, $dates->end_date])->with("something")->get();
我希望它是怎样的:
Vehicle::whereBetween("updated_at", "lookup from start date if present, if not, look from beginning", "lookup to said end date if it's present, if not, look up till the end"])->with("something")->get();
我在问,当参数不存在时,什么是合适的,所以它按照我描述的方式工作?
编辑:
如果省略,开始日期,查询工作正常。如果省略结束日期,则查询在最佳情况下返回零。最坏的情况,抛出一个错误。
我尝试将null,空字符串,false,零(0)作为结束日期,没有任何效果。
【问题讨论】:
-
whereBetween必须有两个参数开始日期和结束日期,如果您有可选参数,请尝试使用不同的if条件和where子句。 -
当您说
from和to时,您指的是$dates->start_date和$dates->end_date值吗?如果是这样,请您显示您在哪里获取/设置$dates。 -
@Rwd 我是从 Postman 寄来的。