素材牛VIP会员
laravel 获取分类下的店铺后如何再进行排序
 非***扰  分类:PHP代码  人气:851  回帖:1  发布于6年前 收藏

已解决 使用whereHas即可

分类店铺两个模型定义了多对多。

现在需要对某一个分类下的所有店铺按距离进行排序,数据库存储的是经纬度。

//获取分类下的店铺
$shop_categories = ShopCategory::where('title',$cat)->first();
$shops = $shop_categories->shops;

//所有店铺按距离排序的代码
$shops = Shop::select(DB::raw('*, (st_distance (point (lng, lat),point('.$lng.','.$lat.') ) * 111195 / 1000) AS
                 distance'))->orderBy('distance')->paginate(10);

现在的问题是,如何将者两段代码合并起来,获取某个分类下的店铺,并按距离排序。

 标签:phplaravel

讨论这个帖子(1)垃圾回帖将一律封号处理……

Lv5 码农
阿***d 交互设计师 6年前#1

这两个表是用什么关联的,不是店铺的ID吗。是的话,先查找到某个分类的ID,然后在这些ID中按距离排序啊。

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取