我通过网址?color=green&&size=xxl;
中的查询
在我的控制器中,我使用
查询$request->query();
返回
{"color":"green","size":"xxl"}
如何搜索表格选项中'option'列应具有'color'和'size'以及相应的< em>“值” 列应为“绿色”和“ xxl”
修改
这是Variation
模型
class Variation extends Model
{
public function sku()
{
return $this->belongsTo(Sku::class);
}
public function opt()
{
return $this->belongsTo(Option::class, 'option_id');
}
public function product()
{
return $this->belongsTo(Product::class);
}
}
控制器方法:
public function productQ(Request $request,$slug,$sku)
{
$query = $request->query();
$condition = [];
Variation::where($query)->get();
}
更新: Alihossein shahabi的solution进行了一些修改
$my_query=Variation::query();
foreach ($request->query() as $key=>$value)
{
$my_query->where('option',$key)->where('value',$value);
}
return $result= $my_query->get();
答案 0 :(得分:0)
尝试一下:
Products::where(function($query) {
$query->where('option', '=', 'color')->where('values', '=', 'green')
})
->where(function($query) {
$query->where('option', '=', 'size')->where('values', '=', 'xxl')
});
答案 1 :(得分:0)
请尝试
public function productQ(Request $request,$slug,$sku)
{
$query = new Variation();
$searchable = $query->getFillable();
$queryParams = $request->all();
foreach ($queryParams as $field => $value) {
if (in_array($field, $searchable) {
$query = $query->where($field, $value);
}
}
$variations = $query->get();
}
答案 2 :(得分:0)
您可以使用以下代码:
$my_query=Variation::query();
foreach ($request->query() as $key=>$value)
{
$my_query->where($key,$value);
}
$result= $my_query->get();
或者您可以使用由SQL
插入的dd($my_query->toSql());
来查看$my_query->get();