laravel 查询数组请求时
laravel when query with array requests
我在数组中有颜色请求 $colors = collect($request->colors);
我正在尝试在查询构建器不为空时发出请求
$products = Product::when($colors, function ($query, $colors) {
return $query->whereHas('colors', function (Builder $query) use ($colors) {
$query->whereIn('slug', $colors->toArray());
});
})
应该不是触发颜色查询
当我尝试
when(!$colors->isEmpty(), function ($query, $colors)
颜色请求中有数组数据时触发
但在内部查询其 return boolean
而不是原始数组数据
帮助!
如果你真的想在那个集合中使用 when
方法,你可以在 $colors
变量范围内:
Product::when($colors->isNotEmpty(), function ($query) use ($colors) {
...
})...
我在数组中有颜色请求 $colors = collect($request->colors);
我正在尝试在查询构建器不为空时发出请求
$products = Product::when($colors, function ($query, $colors) {
return $query->whereHas('colors', function (Builder $query) use ($colors) {
$query->whereIn('slug', $colors->toArray());
});
})
应该不是触发颜色查询
当我尝试
when(!$colors->isEmpty(), function ($query, $colors)
颜色请求中有数组数据时触发
但在内部查询其 return boolean
而不是原始数组数据
帮助!
如果你真的想在那个集合中使用 when
方法,你可以在 $colors
变量范围内:
Product::when($colors->isNotEmpty(), function ($query) use ($colors) {
...
})...