public function show($id)
{
$screening = Screnning::findOrFail($id);
$seats = DB::table('seats')->whereNotIn('id',function($q){
$q->select('seat_id')->from('reservations')
->where('screening_id',$screening) ;
})->get();
return view('reservation.show',compact('screening','seats'));
}
这是我得到未定义变量的代码:筛选。我想问题是$ screening在另一个函数中。 我该怎么解决?
答案 0 :(得分:4)
您可以使用use
使变量在“闭包”中可用:
$seats = DB::table('seats')->whereNotIn('id', function($q) use ($screening) {
$q->select('seat_id')->from('reservations')
->where('screening_id', $screening->id);
})->get();
有关匿名函数/闭包的更多信息:http://php.net/manual/en/functions.anonymous.php-“ 示例#3从父作用域继承变量”