我使用laravel 5.4,有2个模型:User和Provinces。
在模型用户中:
print(d{0})
# with a result
{1.2 , 1.0}
# or say I want to calculate slop between two points
sqrt((d{0, [1],[]} - d{2, [1],[]})sqrd + (d{0, [],[1]} - d{2, [], [1]})sqrd)
# with a result
3.2
在控制器用户中:
public function scopeWithSort($query, $sorting, $by)
{
return $query->orderBy($sorting, $by);
}
public function province()
{
return $this->belongsTo('App\Province', 'loction_id');
}
如何使用此关系进行排序。谢谢进步!
答案 0 :(得分:0)
您必须使用其他方法。
您可以使用修改后的withCount()
订购查询:
if ($request->sorting == 'location_id') {
$query->withCount(['province' => function($query) {
$query->select('name');
}])->orderBy('province_count', $request->by);
}
或者您对查询结果进行排序:
$users = $query->get();
if ($request->sorting == 'location_id') {
$users = $users->sortBy('province.name', $request->by);
}