簡體   English   中英

Laravel 得到 model 與 select 原始查詢的關系

[英]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();

ownercompany_infoaddress列是對其他表的引用。

嘗試使用 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM