我想在子查询中传递2个参数。如果我在子查询中传递静态变量,我的查询是有效的。我想在子查询中传递动态值。我想在子查询中传递$ status。是否可以传递两个子查询中的参数为#pragma once
工作
(function($query,$status) {}
无法正常工作
DB::table('asset_status_tracker')->where('asset_status_tracker.request_id','=',$request_id)->where(function($query) {
$query->where('asset_status_tracker.status_after','=','17')->orwhere('asset_status_tracker.status_after','=','20');
})
->select('asset_status_tracker.status_after')->first();
答案 0 :(得分:2)
要将变量传递给closure/anonymous函数,您可以执行function($query) use ($status)
$status='17';
DB::table('asset_status_tracker')
->where('asset_status_tracker.request_id','=',$request_id)
->where(function($query) use ($status) {
$query->where('asset_status_tracker.status_after','=',$status)
->orwhere('asset_status_tracker.status_after','=','20');
})->select('asset_status_tracker.status_after')
->first();
同样,对于更多变量,您可以将它们作为
传递function($query) use ($var1, $var2, ....)
答案 1 :(得分:0)
您需要将变量更改为不带引号的$status = 17;
。