我有一个reports
表,我必须将其与report_locations
表联接才能找到报表,该报表在存储在report_locations
表中的其agged_location的一定距离内。
我在下面有以下代码
$reports = Report::join('report_locations', function ($report_locations) use ($lat, $lng, $filter, $distance) {
if ($lat != 0 && $lng != 0 && strtolower($filter) == 'location' && $distance != 0) { // Search based on location if lat, lng is not 0 and filter is set to location
$report_locations->on('report_locations.report_id', '=', 'reports.id')
->select(DB::raw(' (6371 * acos (cos (radians(' . $lat . ')) * cos (radians (lat)) * cos (radians (lng) - radians (' . $lng . ')) + sin (radians (' . $lat . ')) * sin (radians (lat))))
AS distance WHERE distance <= ' . $distance));
}
})->get();
它返回reports
和report_locations
的列,但不返回我在{{1上的子查询中使用distance
创建的select
列}}
如何使查询返回在子查询中创建的join
值?