Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel查询生成器无法正常工作_Php_Mysql_Laravel_Query Builder - Fatal编程技术网

Php Laravel查询生成器无法正常工作

Php Laravel查询生成器无法正常工作,php,mysql,laravel,query-builder,Php,Mysql,Laravel,Query Builder,我正在尝试与laravel进行高级连接,如下所示: $locations = DB::table('location') ->select('location.location_time', 'heart_rate.heartrate' ) ->leftJoin('heart_rate' , function($join) use ($data) { $join->

我正在尝试与laravel进行高级连接,如下所示:

$locations = DB::table('location')
        ->select('location.location_time',
                'heart_rate.heartrate'  
        )
        ->leftJoin('heart_rate' , function($join) use ($data) {
                $join->on('heart_rate.user_id', '=', DB::raw('1'))
                    ->where('heart_rate.time', '>',  DB::raw('(location.location_time - INTERVAL 5 SECOND)')) //   ->whereBetween('heart_rate.time', array(, DB::raw('location.location_time + 2 SECOND')));
                    ->where('heart_rate.time', '<',  DB::raw('(location.location_time + INTERVAL 5 SECOND)'));     
                })
        ->where('location.user_id', '=',  DB::raw('1'))
        ->whereBetween('location.location_time', array( "2015-04-24 00:00:00", "2015-04-25 23:59:59" ))
        ->get();

如果您对这个问题进行SQL处理,将会很有帮助。你的问题是:->whereBetween'location.location\u time',array 2015-04-24 00:00:00,2015-04-25 23:59:59试着这样做:->whereBetween'location.location\u time',arraystrtotime 2015-04-24 00:00:00,strotime 2015-04-25 23:59:59我认为你不能在连接子句中使用whereBetween。给出一个错误,称为调用未定义的方法Illumb\\Database\\Query\\JoinClause::whereBetween
SELECT 
  `location`.`location_time`,
  `heart_rate`.`heartrate` 
FROM
  `location` 
  LEFT JOIN `heart_rate` 
    ON `heart_rate`.`user_id` = 1 
    AND `heart_rate`.`time` > (
      location.location_time - INTERVAL 5 SECOND
    ) 
    AND `heart_rate`.`time` < (
      location.location_time + INTERVAL 5 SECOND
    ) 
WHERE `location`.`user_id` = 1 
  AND `location`.`location_time` BETWEEN "2015-04-24 00:00:00" 
  AND "2015-04-25 23:59:59"