如何从子查询中获取列?

时间:2019-01-12 18:18:07

标签: laravel join eloquent

我有一个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();

它返回reportsreport_locations的列,但不返回我在{{1上的子查询中使用distance创建的select列}}

如何使查询返回在子查询中创建的join值?

0 个答案:

没有答案