我的控制器中有这个$ query函数.有用.但是当我尝试在其中添加变量时,它不起作用.这是我的全部功能
$setting = DB::table('settings')->where('id','=','1')->get();
foreach($setting as $st)
$date1 = $st->date1;
$date2 = $st ->date2;
$accounts = Account::with(['subaccount' => function($query){
$query->with(['subaccountinvoice'=> function($query){
$query->where('validate', '=','1')->whereBetween('updated_at', [$date1, $date2]);}])->get();
}])->get();
Run Code Online (Sandbox Code Playgroud)
变量$ date1和$ date2未定义,因为它们是insidd查询函数
为了在PHP中的闭包内继承变量,您需要使用use
关键字将其传递给闭包.
将您的帐户代码更改为:
$accounts = Account::with(['subaccount' => function($query) use ($date1, $date2) {
$query->with(['subaccountinvoice'=> function($query) use ($date1, $date2) {
$query->where('validate', '=','1')->whereBetween('updated_at', [$date1, $date2]);}])->get();
}])->get();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
70 次 |
最近记录: |