2015-08-14 102 views
2

我想在Laravel 5.1 的WHERE子句中使用動態值,但得到undefined variable錯誤。如何在Laravel 5.1的WHERE子句中使用動態值?

這是我的代碼:

$bride_data = \DB::table('brides')->where('url', '=', $url)->orderBy('id', 'DESC')->get(); 
$bride_id=$bride_data[0]->bride_id; 

$comments_data = \DB::table('comments') 
    ->where('request_id', '=', $bridal_requests_data[0]->id) 
    ->where(function($query) { 
     $query->where('sender_id', '=', $bride_id) // this value needs to be dynamic 
       ->orWhere('receiver_id', '=', $bride_id); // this value needs to be dynamic 
     }) 
     ->get(); 

如上所述,$bride_id要動態傳遞的值。

回答

2

您需要將bride_id傳遞給封像這樣:

$comments_data = \DB::table('comments') 
      ->where('request_id', '=', $bridal_requests_data[0]->id) 
      ->where(function($query) use ($bride_id) 
      { 
       $query->where('sender_id', '=', $bride_id) // this value to be dynamic 
       ->orWhere('receiver_id', '=', $bride_id); // this value to be dynamic 
      }) 
      ->get();