未定义的变量:mysql whereNotIn

时间:2018-07-14 19:46:38

标签: mysql laravel

    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在另一个函数中。 我该怎么解决?

1 个答案:

答案 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从父作用域继承变量