[英]Laravel get model relations with select raw query
所以我從 inte.net 復制了一個 function 以獲取您所在地區的所有公司。 現在 function 接收到我需要的表中的所有列,但是我的表與其他表有關系,我希望它獲取其他表的數據而不僅僅是 ID。
這是獲取您所在地區所有公司的代碼:
$companies = DB::table('companies')
->selectRaw(
"id, owner, company_info, address, latitude, longitude,
(6371 * acos( cos( radians(?))
* cos( radians(latitude) )
* cos( radians( longitude ) - radians(?))
+ sin( radians(?) )
* sin( radians(latitude)))) AS distance",
[$requestedCords['latitude'], $requestedCords['longitude'], $requestedCords['latitude']]
)
->having("distance", "<=", $requestedCords['radius'])
->orderBy("distance",'asc')
->offset(0)
->limit(20)
->get();
owner
、 company_info
和address
列是對其他表的引用。
嘗試使用 JOIN。
$companies = DB::table('companies')
->selectRaw(
"companies.id, users.name AS owner, company_info, address, latitude, longitude,
(6371 * acos( cos( radians(?))
* cos( radians(latitude) )
* cos( radians( longitude ) - radians(?))
+ sin( radians(?) )
* sin( radians(latitude)))) AS distance",
[$requestedCords['latitude'], $requestedCords['longitude'], $requestedCords['latitude']]
)
->join('users', 'companies.owner', '=', 'users.id')
->having("distance", "<=", $requestedCords['radius'])
->orderBy("distance",'asc')
->offset(0)
->limit(20)
->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.