我有一个雄辩的查询,我传递一个值并在其中为null。例如,如果我有价格列,并且我有两个变量$to
和$from
。
示例$from = 10 $to= ""
$from = 10;
$to = "";
Product::whereBetween('price', [$from, $to])->get();
我的问题是,这没关系,这会有用吗?如果不是,那么如果我想从10
搜索到 infinity ,我该怎么办?
答案 0 :(得分:1)
您可以在 php 中使用 ??
来检查空值,因此如果第一个值为空,它将等于您传递的第二个值。喜欢:
$from = $request->to ?? 0;
$to = $request->to ?? Model::max('column'); // names are imaginary
答案 1 :(得分:0)
如果$to
可以为空值,则应检查并构建不同的查询,具体取决于它。
例如:
$products = Product::query();
if(empty($to))
{
$products = $products->where('price','>=', $from);
}
else
{
$products = $products->whereBetween('price', [$from, $to])
}
$products = $products->get();