gpt4 book ai didi

php - Laravel 数据库查询返回空集合

转载 作者:行者123 更新时间:2023-11-29 04:05:42 26 4
gpt4 key购买 nike

我有一个小表,并尝试使用一些过滤器从中获取一些特定数据。

我的尝试:

$matchingCars = Car::where([
['brand', '=', request('brand')],
['model', '=', request('model')],
['price', '<', request('maxPrice')],
])->get();

结果:

Collection {#249 ▼
#items: []
}

您可以看到没有返回任何内容。但是,如果我一个一个地查询并计算结果,那么我得到一个大于 0 的数字,所以有模型通过了我的过滤器!

    $checkBrands = Car::where('brand', '=', request('brand'))->get(); 
$checkModels = Car::where('model', '=', request('model'))->get();
$checkPrice = Car::where('price', '<', request('maxPrice'))->get();

echo count($checkBrands) . "<br>"; //output: 1
echo count($checkModels). "<br>"; //output: 1
echo count($checkPrice). "<br>"; //output: 8
die;

为什么它们不存储在集合中?

最佳答案

你需要 orWhere():-

$matchingCars = Car::where('brand', '=', request('brand'))
->orwhere('model', '=', request('model'))
->orwhere('price', '<', request('maxPrice'))->get()

注意:-

你说:- 但是,如果我一个一个地查询并计算结果,那么我得到一个大于 0 的数字

但这并不意味着所有这三个查询与 AND 的组合将返回结果。

所以像上面那样应用OR条件。

关于php - Laravel 数据库查询返回空集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42459832/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com