我试图在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
是要动态传递的值。
答案 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();