我想追加各種不同的查詢爲我的過濾器,但這裏的問題是我的orWhere
條件異常工作,並給我結果,無論我的條件。如何從表格中獲取數據,在Laravel 5.2中添加各種查詢?
我加入我下面的控制器:
public function earringsFilter(Request $request)
{
if($request->isMethod('post')) {
$data = array_filter($request->all());
$filter = $data['filter'];
$jewelleryEarringsData = Jwellery::select('id','name','price','msrp','metal_type','image_url','total_weight','image_2','image_3');
$earrings = &$jewelleryEarringsData;
$carat = array();
$amount = array();
$metal = array();
if(isset($data['metal'])){
$metal = $data['metal'];
//$earrings->whereIn('metal_type', $metal);
foreach($metal as $valk){
$earrings->orWhere('metal_type', 'like', '%'.$valk.'%');
}
}
if(isset($data['amount']['1']) && $data['amount']['1'] !=''){
$amount = $data['amount'];
$amt1 = $amount['0'];
$amt2 = $amount['1'];
$earrings->whereBetween('price',[$amt1,$amt2]);
}
if(isset($data['carat']['1']) && $data['carat']['1'] !=''){
$carat = $data['carat'];
$carat1 = $carat['0'];
$carat2 = $carat['1'];
$earrings->where('total_weight','>=',$carat1)->where('total_weight','<=',$carat2);
}
$jewelleryEarringsData = $earrings->where('item_type', $filter)->get();
}
}
因此,代碼在那裏我使用Laravel的orWhere
功能是給我結果異常。
也發佈表結構,數據和所需otuput –
你不耳環可變 –