基于相关模型的雄辩Laravel排序分页查询

基于相关模型的雄辩Laravel排序分页查询,laravel,laravel-5,eloquent,laravel-query-builder,Laravel,Laravel 5,Eloquent,Laravel Query Builder,我有以下雄辩的疑问 Company::has('cars')->with([ “汽车”、“位置”=>功能($q){ $q->neared();//***详见 } ])->取(40)->分页(10); 我如何按距离订购公司 ***这是位置附近的范围-型号: 公共函数($query) { $location=json_解码(请求()->cookie('location'); $query->distance($location->lat,$location->lng);//**使用包 返回$que

我有以下雄辩的疑问

Company::has('cars')->with([
“汽车”、“位置”=>功能($q){
$q->neared();//***详见
}
])->取(40)->分页(10);
我如何按距离订购公司

***这是
位置附近的范围
-型号:

公共函数($query)
{
$location=json_解码(请求()->cookie('location');
$query->distance($location->lat,$location->lng);//**使用包
返回$query->orderBy('distance');
}
**它使用

当我调用以下命令时,距离的计算是正确的

\App\Address::nearest()->get()

您必须将位置表连接到公司查询,然后才能按距离订购。

在我看来,唯一的方法是在添加位置时存储每个位置的距离。然后,当然,您可以按距离订购。

如果您可以使用该软件包查找距离。将距离附加到公司模型

然后,您可以在controller中轻松地对集合进行排序


Reference

您是否有任何错误?请发布
cars
关系。@Jonasstaudenmei如果您可以跳过cars关系,则查询与响应中添加cars是相同的想法,但不是-这是一个hasmany关系。@ChamaraAbeysekara不,查询有效,但它根本不是按位置的距离排序的。@user1469734若它使用
\App\Address::nearest()->get()
,那个么似乎您在ScopeNearest函数中错误地映射了距离。如果是的话,那么你能不能也给我们提供相关的模型文件?这将帮助我找到问题所在。多年来,我一直希望用一个来自Eloquent的简单orderBy来解决这个问题,但每次我都会像这样进行连接和排序。今天,我真的认为这是唯一的方法,在本地做到这一点。