【发布时间】:2018-07-29 16:50:34
【问题描述】:
我有一些特价产品。每个产品都有几个交易。我设法获得了 whereBetween,但仅限于所有相关交易。我只想退回最低交易与 whereBetween 匹配的产品。
因此,请获取最低关联交易价格介于给定最低和最高价格之间的产品。
到目前为止,这是我的代码:
$products = Product::when($request->filled('brand'), function ($query)use($request) {
$brandRequest = $request->input('brand');
$brandReqArray = explode(',', $brandRequest);
$query->whereHas('brands', function($q) use ($brandReqArray) {
$q->whereIn('slug', $brandReqArray);
});
})->when($request->filled('gender'), function ($query)use($request) {
$genderRequest = $request->input('gender');
$genderReqArray = explode(',', $genderRequest);
$query->whereHas('genders', function($q) use ($genderReqArray) {
$q->whereIn('slug', $genderReqArray);
});
})->when($request->filled('price'), function ($query)use($request) {
$priceRequest = $request->input('price');
$priceReqArray = explode(';', $priceRequest);
$query->whereHas('deals', function($q) use ($priceReqArray) {
$q->whereBetween('price', $priceReqArray);
});
})->with(['deals' => function ($query) {
$query->orderBy('price','asc');
}])->paginate(24);
$input = $request->only(['brands', 'gender', 'price']);
$products->appends($input);
【问题讨论】:
-
你的问题不清楚队友,你想只获得价格范围内有交易的产品,如果它没有交易你想跳过特定产品,是吗?还是别的什么?
-
对不起!我只想获得最低交易->价格在价格范围内的产品。所以每个产品都有几个交易,我想取每个产品的最低交易->价格并检查它是否在价格范围内,然后返回相应的产品。
-
您想获得在价格范围内有交易的产品,但只有在该价格范围内的最低交易,而不是价格范围内的所有产品,是吗?
-
正是这样!我已经尝试了很多,但仍然没有成功..
标签: php laravel request product