Php Laravel-如何在where内的匿名函数中传递请求数据

Php Laravel-如何在where内的匿名函数中传递请求数据,php,laravel,request,eloquent,Php,Laravel,Request,Eloquent,因此,如果用户没有选择任何选项,我希望获取所有项目,否则根据请求数据查询项目。但是,我无法将$request传递给我的函数。这是我的密码: public function showProducts(Request $request) { $products = Product::all(); if(count($request->all()) != 0) { $products = Product::where(function

因此,如果用户没有选择任何选项,我希望获取所有项目,否则根据请求数据查询项目。但是,我无法将
$request
传递给我的函数。这是我的密码:

public function showProducts(Request $request) 
{
       $products = Product::all();
       if(count($request->all()) != 0) {
                $products = Product::where(function($query) {
                    $minPrice = $request['min'] ? $request['min'] : null;
                    $maxPrice = $request['max'] ? $request['max'] : null;
                    $colors = $request['color'] ? $request['color'] : null;
                    $sizes = $request['size'] ? $request['size'] : null;

                    if($minPrice != null && $maxPrice != null) {
                        $query->where('price', '>=', $minPrice)->where('price', '<=', $maxPrice);
                    }

                    if($minPrice == null && $maxPrice == null && $colors == null && $sizes == null)  {

                    }
                })->get();
            }
}
公共功能展示产品(请求$Request)
{
$products=Product::all();
如果(计数($request->all())!=0){
$products=产品::其中(函数($query){
$minPrice=$request['min']?$request['min']:null;
$maxPrice=$request['max']?$request['max']:null;
$colors=$request['color']?$request['color']:null;
$size=$request['size']?$request['size']:null;
如果($minPrice!=null&&$maxPrice!=null){

$query->where('price','>=',$minPrice)->where('price','您需要使用
use
关键字从父范围传入参数:

$products = Product::where(function($query) use ($request) {
    // $request is now available
现在,
$request
在您的闭包中可用


请参见此处:

您需要使用
use
关键字从父范围传入参数:

$products = Product::where(function($query) use ($request) {
    // $request is now available
现在,
$request
在您的闭包中可用


请看这里:

工作得像个符咒。不知道我必须用符咒来做。谢谢!工作得像个符咒。不知道我必须用符咒来做。谢谢!