我一直在尝试使用Laravel雄辩的查询生成器进行查询,但是没有成功。
这就是我要实现的目标:我有一个带笔记本电脑的网上商店。人们可以按品牌,屏幕直径和处理器进行搜索。我的表称为“笔记本电脑”,列为“ specsTag”,“ screen_diameter”和“ processor”。我正在使用复选框。因此,请求是一个数组,可能看起来像
['HP','Apple', '12 inch', 'Intel Core M']
首先,我想将数组中的所有品牌收集为一个集合,并使用数组中的值对它们进行相应的过滤。
我尝试了几件事。即试图搜索屏幕直径。
建议非常感激。
你可以试试这个
$laptops = Laptop::whereIn('specsTag',$requestArray)->where(function($query) use ($requestArray){
foreach($requestArray as $item){
$query->orWhere('screen_diameter','=',$item);
}
})->get();
假设你有$requestArray
这样
$requestArray = ['HP','Apple' '12 inch', 'Intel Core M'];
您将获得像这样的sql
select * from `laptops` where `specsTag` in (?, ?, ?, ?) and (`screen_diameter` = ? or `screen_diameter` = ? or `screen_diameter` = ? or `screen_diameter` = ?)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句