首页 > 解决方案 > 如何将请求传递给 Laravel Eloquent ::with 函数?

问题描述

我的控制器中有这个功能:

public function search(Request $request) {
    return Product::with([
        'producer' => function($producer) {
            dd($request);
            if ( isset($request->producer_id) ) {
                $producer->where(['id','=',$request->producer_id]);
            }
        }
    ]);
}

现在dd()所说的$request是未定义的,但如果我在它正确显示之前抓住它return

如何将$request变量传递给::with's 函数?

标签: laraveleloquentlaravel-5.7

解决方案


为了使用request你必须use在 laravel 中使用关键字

public function search(Request $request) {
return Product::with([
    'producer' => function($producer) use($request) {
                                      ^^^
        dd($request);
        if ( isset($request->producer_id) ) {
            $producer->where(['id','=',$request->producer_id]);
        }
    }
]);
}

推荐阅读