Laravel 查询生成器
Laravel Query Builder wherebetween
我构建了一个搜索表单,它将 select 来自数据库的标记,其中日期被插入到数据选择器中。效果很好,但是,当我添加时间时出现错误。
我重建了一个类似这样的查询:
$datefrom = $request->input('datefrom');
$dateto = $request->input('dateto');
$timefrom = $request->input('timefrom');
$timfrom = $timefrom.':00';
$timeto = $request -> input('timeto');
$timto = $timeto.':00';
$type = $request->input('type');
$maps = Map::select('lat','lng',$type,'temp','humidity','date','time')
->where(function($query){
$query->whereBetween('date',array($datefrom,$dateto))
->whereBetween('time',array($timfrom,$timto));
})
->get();
当我在搜索表单中输入检查时出现错误:
Undefined variable : $datefrom etc.
有什么帮助吗?
您必须使用 use
将其传递给函数,例如:
->where(function($query) use ($datefrom){
$query->whereBetween('date',array($datefrom,$dateto))
->whereBetween('time',array($timfrom,$timto));
})
如果你有不止一个,你可以像这样传递它们:
->where(function($query) use ($datefrom,$dateto,$timfrom,$timto){
$query->whereBetween('date',array($datefrom,$dateto))
->whereBetween('time',array($timfrom,$timto));
})
希望对您有所帮助。
我构建了一个搜索表单,它将 select 来自数据库的标记,其中日期被插入到数据选择器中。效果很好,但是,当我添加时间时出现错误。
我重建了一个类似这样的查询:
$datefrom = $request->input('datefrom');
$dateto = $request->input('dateto');
$timefrom = $request->input('timefrom');
$timfrom = $timefrom.':00';
$timeto = $request -> input('timeto');
$timto = $timeto.':00';
$type = $request->input('type');
$maps = Map::select('lat','lng',$type,'temp','humidity','date','time')
->where(function($query){
$query->whereBetween('date',array($datefrom,$dateto))
->whereBetween('time',array($timfrom,$timto));
})
->get();
当我在搜索表单中输入检查时出现错误:
Undefined variable : $datefrom etc.
有什么帮助吗?
您必须使用 use
将其传递给函数,例如:
->where(function($query) use ($datefrom){
$query->whereBetween('date',array($datefrom,$dateto))
->whereBetween('time',array($timfrom,$timto));
})
如果你有不止一个,你可以像这样传递它们:
->where(function($query) use ($datefrom,$dateto,$timfrom,$timto){
$query->whereBetween('date',array($datefrom,$dateto))
->whereBetween('time',array($timfrom,$timto));
})
希望对您有所帮助。