0
我試圖找到我的問題的解決方案,但找不到任何有用的東西。我需要獲取由此查詢創建的「距離」變量以及所有其他數據(用戶,用戶數據,優惠等)。我需要在我的視圖中以「km」爲單位打印每條記錄的距離。雄辯:需要返回從這個查詢(座標)「距離」
下面的代碼:
if(property_exists($params, "lat") && property_exists($params, "lng")) {
if(null == $params->lat || null == $params->lng) {
//don't use coordinates
} else {
$radius = $this->coordMaxRadius;
$query->whereHas("userData", function($q) use ($params, $radius) {
$q->selectRaw(\DB::raw("
ROUND(6371 * acos(cos(radians($params->lat))
* cos(radians(lat))
* cos(radians(lng) - radians($params->lng))
+ sin(radians($params->lat))
* sin(radians(lat)))) AS distance "));
$q->having("distance", "<", $radius)->orderBy("distance");
});
}
}
/***** later in the code *****/
$query->with("timeSlots.days", "timeSlots.time", "userData",
"university", "faculty", "user", 'userData.feedbacks');
這樣你可以對其進行篩選後,在'foreach'循環中做類似的工作,它將計算**距離**並將其添加爲您需要它的屬性$ query-> userData-> distance = $ resultOfCalculation'。 – Mihailo
@Mihailo我想我會用這個作爲臨時解決方案,直到我找不到一個純粹的關係解決方案 –
你的代碼,查詢沒有返回'distance'屬性?而不是'$ query-> with('try'$ query-> get()'並查看距離變量是否存在 –