Php 拉维尔';与';急加载范围

Php 拉维尔';与';急加载范围,php,laravel,Php,Laravel,使用此快速加载: $lang = in_array($lang,$languages) ? $lang : 'en'; $requirements = Requirement::with([ 'countryMatch', 'applier' => function ($query) { $query->select('id','passport_type','office_id','citizenship_id')->

使用此快速加载:

$lang = in_array($lang,$languages) ? $lang : 'en';

    $requirements = Requirement::with([
            'countryMatch',
            'applier' => function ($query) { $query->select('id','passport_type','office_id','citizenship_id')->groupBy('citizenship_id');},
            'doc.translation' => function ($query) { $query->where('language',$lang);}])->get();
我试图使用在“with语句”开头定义的变量$lang,但我总是得到:

Undefined variable: lang

尝试此操作,使用
use
关键字将变量传递给闭包:

$requirements = Requirement::with([
    'countryMatch',
    'applier' => function ($query) { 
        $query->select('id','passport_type','office_id','citizenship_id')->groupBy('citizenship_id');
    },
    'doc.translation' => function ($query) use ($lang) { 
        $query->where('language',$lang);
    }
])->get();