在子查询中传递两个参数

时间:2018-05-09 04:58:13

标签: php laravel laravel-5 laravel-5.3

我想在子查询中传递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();

2 个答案:

答案 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;