Php 拉雷维尔5.2雄辩。查询不正常
请帮忙。我有一个查询,我需要在哪里用DB搜索价格-货币($cur),我有每日价格、每小时价格和货币(GEL,美元)。我写了一个雄辩的问题:Php 拉雷维尔5.2雄辩。查询不正常,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,请帮忙。我有一个查询,我需要在哪里用DB搜索价格-货币($cur),我有每日价格、每小时价格和货币(GEL,美元)。我写了一个雄辩的问题: if($request->input('currency') == 'USD'){ $query->where(function ($qu) use ($request) { $qu->where('currency', 'USD')->where(function($q) use ($requ
if($request->input('currency') == 'USD'){
$query->where(function ($qu) use ($request) {
$qu->where('currency', 'USD')->where(function($q) use ($request){
$q->whereBetween('daily_price', [$request->input('priceFrom'), $request->input('priceTo')]);
$q->orWhereBetween('hourly_price', [$request->input('priceFrom'), $request->input('priceTo')]);
});
})->orWhere(function ($qu) use ($request, $cur) {
$qu->where('currency', 'GEL')->where(function($q) use ($request, $cur){
$q->whereBetween('daily_price', [((int)$request->input('priceFrom'))*$cur, ((int)$request->input('priceTo'))*$cur]);
$q->orWhereBetween('hourly_price', [((int)$request->input('priceFrom'))*$cur, ((int)$request->input('priceTo'))*$cur]);
});
});
}else{
$query->where(function ($qu) use ($request) {
$qu->where('currency', 'GEL')->where(function($q) use ($request){
$q->whereBetween('daily_price', [$request->input('priceFrom'), $request->input('priceTo')]);
$q->orWhereBetween('hourly_price', [$request->input('priceFrom'), $request->input('priceTo')]);
});
})->orWhere(function ($qu) use ($request, $cur) {
$qu->where('currency', 'USD')->where(function($q) use ($request, $cur){
$q->whereBetween('daily_price', [((int)$request->input('priceFrom'))/$cur, ((int)$request->input('priceTo'))/$cur]);
$q->orWhereBetween('hourly_price', [((int)$request->input('priceFrom'))/$cur, ((int)$request->input('priceTo'))/$cur]);
});
});
}
代码以这个查询开始:$query->where('city\u id',$arr)代码>
我的数据库中没有关于city\u id=5
的任何内容,但是当我添加货币查询时,它会得到一些(我认为是随机的)行结果。。。请帮忙。我找到了解决办法
if($request->input('currency') == 'USD'){
$query->where(function ($que) use ($request, $cur) {
$que->where('currency', 'USD')->where(function($q) use ($request){
$q->whereBetween('daily_price', [$request->input('priceFrom'), $request->input('priceTo')])
->where('daily_price', '>', 0);
$q->orWhereBetween('hourly_price', [$request->input('priceFrom'), $request->input('priceTo')])
->where('hourly_price', '>', 0);
});
$que->orWhere('currency', 'GEL')->where('daily_price', '>', 0)->where('hourly_price', '>', 0)->where(function($q) use ($request, $cur){
$q->whereBetween('daily_price', [((int)$request->input('priceFrom'))*$cur, ((int)$request->input('priceTo'))*$cur])
->where('daily_price', '>', 0);;
$q->orWhereBetween('hourly_price', [((int)$request->input('priceFrom'))*$cur, ((int)$request->input('priceTo'))*$cur])
->where('hourly_price', '>', 0);
});
});
}else{
$query->where(function ($quer) use ($request, $cur) {
$quer->where(function ($que) use ($request, $cur){
$que->where('currency', 'GEL')->where(function($q) use ($request){
$q->whereBetween('daily_price', [$request->input('priceFrom'), $request->input('priceTo')])
->where('daily_price', '>', 0);
$q->orWhereBetween('hourly_price', [$request->input('priceFrom'), $request->input('priceTo')])
->where('hourly_price', '>', 0);
});
$que->orWhere('currency', 'USD')->where(function($q) use ($request, $cur){
$q->whereBetween('daily_price', [((int)$request->input('priceFrom'))/$cur, ((int)$request->input('priceTo'))/$cur])
->where('daily_price', '>', 0);
$q->orWhereBetween('hourly_price', [((int)$request->input('priceFrom'))/$cur, ((int)$request->input('priceTo'))/$cur])
->where('hourly_price', '>', 0);
});
});
});
}
我找到了解决办法
if($request->input('currency') == 'USD'){
$query->where(function ($que) use ($request, $cur) {
$que->where('currency', 'USD')->where(function($q) use ($request){
$q->whereBetween('daily_price', [$request->input('priceFrom'), $request->input('priceTo')])
->where('daily_price', '>', 0);
$q->orWhereBetween('hourly_price', [$request->input('priceFrom'), $request->input('priceTo')])
->where('hourly_price', '>', 0);
});
$que->orWhere('currency', 'GEL')->where('daily_price', '>', 0)->where('hourly_price', '>', 0)->where(function($q) use ($request, $cur){
$q->whereBetween('daily_price', [((int)$request->input('priceFrom'))*$cur, ((int)$request->input('priceTo'))*$cur])
->where('daily_price', '>', 0);;
$q->orWhereBetween('hourly_price', [((int)$request->input('priceFrom'))*$cur, ((int)$request->input('priceTo'))*$cur])
->where('hourly_price', '>', 0);
});
});
}else{
$query->where(function ($quer) use ($request, $cur) {
$quer->where(function ($que) use ($request, $cur){
$que->where('currency', 'GEL')->where(function($q) use ($request){
$q->whereBetween('daily_price', [$request->input('priceFrom'), $request->input('priceTo')])
->where('daily_price', '>', 0);
$q->orWhereBetween('hourly_price', [$request->input('priceFrom'), $request->input('priceTo')])
->where('hourly_price', '>', 0);
});
$que->orWhere('currency', 'USD')->where(function($q) use ($request, $cur){
$q->whereBetween('daily_price', [((int)$request->input('priceFrom'))/$cur, ((int)$request->input('priceTo'))/$cur])
->where('daily_price', '>', 0);
$q->orWhereBetween('hourly_price', [((int)$request->input('priceFrom'))/$cur, ((int)$request->input('priceTo'))/$cur])
->where('hourly_price', '>', 0);
});
});
});
}
请将生成查询的整个代码与您在请求中获得的内容一起粘贴。整个功能如下:请将生成查询的整个代码与您在请求中获得的内容一起粘贴。整个功能如下: