如何在Laravel 5.1中的WHERE子句函数中传递动态值?

时间:2015-08-14 10:27:56

标签: laravel-5.1

我试图在Laravel 5.1中的WHERE子句函数中传递动态值 但收到undefined variable错误。

这是我的代码:

$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是要动态传递的值。

1 个答案:

答案 0 :(得分: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();