2013-07-31 50 views
0

我的數據庫有這樣的層次:Laravel - 層次雄辯模型

- Manager: 
    - Coordinator: 
    - Supervisor: 
     - Operator 

此代碼,輸出所有的「協調員」屬於「經理人」:

Manager::find(1)->coordinator()->get(); 

可以得到所有「監督員」屬於「協調員」直接?例如:

Manager::find(1)->coordinator()->supervisor()->get(); 

對不起的英語,我是巴西人

+0

是的,這是可能的,你只需要定義所有的關係。 –

回答

0

這是完全可能的,你只需要定義你的模型中的所有關係。然後,你可以做檢索特定「經理」的所有所有的「經營者」:

Manager::find(1)->coordinator->supervisor->operator; 

在該代碼中,我使用的是配備了雄辯的ORM動態性質在。

當我說「你需要defin在車型中的所有關係」做了以下內容:

class Manager extends Eloquent 
{ 
    public function coordinator() 
    { 
     return $this->hasMany('Coordinator'); 
    } 
} 

這時你會做同樣的,有許多監管協調和有許多運營商的主管。

請參閱有關Relationship, one-to-many, in Laravel 4的文檔。

+0

我這樣做了,但返回這個:未定義的屬性:Illuminate \ Database \ Eloquent \ Collection :: $ supervisor –

+0

刪除美元符號。 –

+0

找到'錯誤',返回一個集合-Illuminate \ Database \ Eloquent \ Collection - 添加 - >第一個()或者在循環中工作!謝謝 –