如何将请求传递给 Laravel Eloquent ::with 函数?
How to pass request into a Laravel Eloquent ::with function?
我的控制器中有这个功能:
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
的函数?
要使用 request
,您必须在 laravel
中使用 use
关键字
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]);
}
}
]);
}
在PHP中,如果要将变量传递给内联函数,则需要将use
标识符与所需的变量一起添加。示例:
$var = 1.2;
$fn = function ($param1, $param2) use ($var) {
return ($param1 + $param2) * $var;
};
echo $fn(2, 4); // prints 7.2
我的控制器中有这个功能:
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
的函数?
要使用 request
,您必须在 laravel
use
关键字
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]);
}
}
]);
}
在PHP中,如果要将变量传递给内联函数,则需要将use
标识符与所需的变量一起添加。示例:
$var = 1.2;
$fn = function ($param1, $param2) use ($var) {
return ($param1 + $param2) * $var;
};
echo $fn(2, 4); // prints 7.2