Laravel 基于商店地理位置的产品搜索
我是拉拉维尔的新手,我正在尝试使用附近的商店搜索产品 这是我的密码Laravel 基于商店地理位置的产品搜索,laravel,eloquent,eloquent-relationship,Laravel,Eloquent,Eloquent Relationship,我是拉拉维尔的新手,我正在尝试使用附近的商店搜索产品 这是我的密码 Shop::selectRaw(" id , ( 6371 * acos( cos( radians(?) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(?) ) + s
Shop::selectRaw(" id ,
( 6371 * acos( cos( radians(?) ) *
cos( radians( lat ) )
* cos( radians( lng ) - radians(?)
) + sin( radians(?) ) *
sin( radians( lat ) ) )
) AS distance", [$latitude, $longitude, $latitude])
->having("distance", "<", $radius)
->orderBy("distance",'asc')->products()->where('name', 'LIKE', '%' . $keyword . '%')->get();
Shop::selectRaw(“id,
(6371*acos(cos(弧度(?)*
cos(弧度(纬度))
*cos(弧度(lng)-弧度(?)
)+sin(弧度(?)*
sin(弧度(纬度)))
)作为距离“,[$latitude,$latitude,$latitude])
->有(“距离”,“我真的很困惑,为什么在orderBy
和所有其他条款之后使用products()
如果你想从商店获得产品
,你不必做产品()
,你必须使用产品:…
,但是如果你想获得与产品相关的商店
,你必须使用Where has('products',…)
,请阅读更多相关信息
您的代码应该如下所示:
$shops=Shop::selectRaw(
“id,(6371*acos(
cos(弧度(?)*cos(弧度(纬度))*cos(弧度(lng)-弧度(?)+sin(弧度(?))*sin(弧度(纬度))
))作为距离“,
[$latitude,$latitude,$latitude])
->有(“距离”,“非常感谢你”这对我很有用。@Matiaslauriti真棒!你能把我的答案标记为正确吗?