我已经写了一个查询来在laravel中进行过滤,例如
$data = DB::table('products')->DISTINCT('modalid')->DISTINCT('brandid')->select('rimdiameter','modalid','modalname1','modalname2','image1','brand','minprice','maxprice')
->when($centre_bore, function($query, $centre_bore){
$query->where('hubbore','>=',$centre_bore);
})->when($boltptn, function($query, $boltptn) {
$query->where('boltpattern',$boltptn);
})->when($diameter, function($query, $diameter) {
$query->where('rimdiameter',$diameter);
})->when($width, function($query, $width) {
$query->where('rimwidth',$width);
})->when($frontwid, function($query, $frontwid) {
$query->where('rimwidthfront',$frontwid);
})->when($construct, function($query, $construct) {
$query->where('construction',$construct);
})->when($color, function($query, $color) {
$query->where('modalname2',$color);
})->when($brand, function($query, $brand) {
$query->where('brand',$brand);
})->get();
它正常工作,但rimdiameter = 22,rimwidth = 11和rimwidthfront = 9是用户选择的值,在上述条件下没有数据,但我希望查询工作像rimdiameter = 22,rimwidth = 11和rimdiameter = 22,rimwidthfront = 9这是如何为该结果编写查询的?其他字段在某些时候值都不为空,所以我在使用时如何在我的查询中实现上述要求。
我已经写了一个查询来在laravel中进行过滤,例如$ data = DB :: table('products')-> DISTINCT('modalid')-> DISTINCT('brandid')-> select('rimdiameter','modalid ','modalname1','modalname2','...
尝试以下:
使用where('rimwidth','=',$width)