2016-06-12 74 views
4

因此,我正在爲我創建的Web應用程序創建一個API,並且試圖將它保留在Eloquent ORM中。還有,我要來一次親子關係:Laravel雄辯的ORM - 與語句嵌套

用戶 - >網站日誌 - >站點

站點類代碼:

class Site extends Model { 
    public function log() { 
     return $this->hasMany('App\SiteLog', 'site_id', 'id'); 
    } 
} 

SiteLog類代碼:

class SiteLog extends Model 
{  
    public function site() 
    { 
     return $this->belongsTo('App\Site', 'site_id', 'id'); 
    } 

    public function user() 
    { 
     return $this->belongsTo('App\User', 'user_id', 'id'); 
    } 
} 

當我使用以下實例化SiteLog類時:

$sites = Site::with('log')->get(); 

當我使用jQuery進行GET請求時,我得到了所有網站以及它們內部的對象數組,其中包含網站各個日誌的所有數據。這正是我想要的。但是,我想更進一步,讓用戶知道日誌與哪個關聯。

有點像如何做到這一點的工作:

SiteLog::with('user')->get(); 

但都在一個聲明,如果它是一個大的連接查詢。然而,我不確定這個雄辯的ORM是否涵蓋了這樣的測試用例。

有沒有人做過這樣的事情?我可以用一些非常冒險的做法來完成這項工作,或者只是寫一個原始的SQL查詢,但我只是想知道是否有更加雄辯的方式來做到這一點。

回答