laravel中的过滤查询

问题描述 投票:0回答:2

我已经写了一个查询来在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','...

php mysql laravel filtering
2个回答
1
投票

尝试以下:


0
投票

使用where('rimwidth','=',$width)

© www.soinside.com 2019 - 2024. All rights reserved.