如何在Laravel 5.2中从附加各种查询的表中获取数据?
我正试图为我的过滤器附加各种不同的查询,但这里的问题是我的如何在Laravel 5.2中从附加各种查询的表中获取数据?,laravel,laravel-5,laravel-5.2,Laravel,Laravel 5,Laravel 5.2,我正试图为我的过滤器附加各种不同的查询,但这里的问题是我的或where条件工作异常,无论我的where条件如何,都会给我结果 我正在下面添加我的控制器: public function earringsFilter(Request $request) { if($request->isMethod('post')) { $data = array_filter($request->all()); $filter = $data['filter'
或where
条件工作异常,无论我的where条件如何,都会给我结果
我正在下面添加我的控制器:
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();
}
}
公共函数耳环过滤器(请求$Request)
{
如果($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');
$耳环=&$jewelleryEarringsData;
$carat=array();
$amount=array();
$metal=array();
如果(isset($data['metal'])){
$metal=$data['metal'];
//$earlings->其中('metal_type',$metal);
foreach(金属为$valk){
$earlings->orWhere('metal_type'、'like'、'%'。$valk'%);
}
}
如果(isset($data['amount']['1'])和&$data['amount']['1']!=''){
$amount=$data['amount'];
$amt1=$amount['0'];
$amt2=$amount['1'];
$earlings->whereBetween('price',[$amt1,$amt2]);
}
如果(isset($data['carat']['1'])和&$data['carat']['1']!=''){
$carat=$data['carat'];
$carat1=$carat['0'];
$carat2=$carat['1'];
$earlings->where('total_-weight','>=',$carat1)->where('total_-weight','将代码更改为:
foreach ($metal as $valk){
$earrings = $earrings->orWhere('metal_type', 'like', '%'.$valk.'%');
}
请换衣服
$jewelleryEarringsData = Jwellery::select('id','name','price','msrp','metal_type','image_url','total_weight','image_2','image_3');
到
并将值重新分配回耳环变量。
希望这对你有所帮助同时发布表结构、数据和所需的OTUPUT你没有将值赋回耳环变量耶…即使我也有同样的疑问谢谢你的回复,但问题在于orWhere条件。如果我删除或上面附加的查询在哪里工作绝对正常。但是如果我添加或上面的查询在哪里工作无论何处条件如何
$jewelleryEarringsData = Jwellery::select('id','name','price','msrp','metal_type','image_url','total_weight','image_2','image_3')->get();