gpt4 book ai didi

php - 数据库 :select Laravel 5 how to pass query results to my posts

转载 作者:行者123 更新时间:2023-11-29 01:48:51 25 4
gpt4 key购买 nike

我有 2 个表,用户和帖子,其中用户有他们的坐标 (user_latitude/user_longitude),帖子有他们的坐标 (address_latitude/address_longitude)。

我设法用下面的函数显示结果数组,但我想做的是提取临时字段“distance”并将其关联到我的帖子,因此在我看来我可以显示如下内容:

@foreach($posts as $post)
<p>Distance from you: {{$post->distance}}</p>
...

在此方面的一些帮助将不胜感激。

public function distance(){
$lat = Auth::user()->user_latitude;
$lng = Auth::user()->user_longitude;
$radius = 10;

$data = DB::select('SELECT id, title, ( 6371 * acos( cos( radians('.$lat.') ) * cos( radians( address_latitude ) ) * cos( radians( address_longitude ) - radians('.$lng.') ) + sin( radians('.$lat.') ) * sin( radians( address_latitude ) ) ) ) AS distance FROM posts HAVING distance < '.$radius.';');

return $data;
}

最佳答案

使用Raw Expressions :

public function my_function()
{
$lat = Auth::user()->user_latitude;
$lng = Auth::user()->user_longitude;
$radius = 10;

$data = DB::table('posts')
->select('id', 'title', DB::raw('( 6371 * acos( cos( radians('.$lat.') ) * cos( radians( address_latitude ) ) * cos( radians( address_longitude ) - radians('.$lng.') ) + sin( radians('.$lat.') ) * sin( radians( address_latitude ) ) ) ) AS distance'))
->having('distance', '<', $radius)
->get();

return view('posts.later', ['posts' => $data]);
}

现在如果你想在你的 View 中使用它,这里是你如何使用 foreach 来实现的:

@foreach($posts as $post)
<p>Distance from you: {{$post->distance}}</p>
@endforeach

关于php - 数据库 :select Laravel 5 how to pass query results to my posts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55011474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com