2014-01-08 104 views
0

好,我有這個表「區」:laravel雄辯一對多同一對象

id -> primary key, int 
parent -> int, index, nullable 
areaName -> string 

此表中包含區域,每個區域可以是其他區域的兒子,所以父列可以爲空,或任何其他地區的另一個ID。

現在我想讓它與雄辯接觸,這是一對多的關係。

我試過這段代碼,但不是很好,有人做過類似的任何想法?

class Area extends Eloquent { 

    public function sons() { 

     return $this->hasMany('Area', 'id', 'parent'); 
    } 

    public function parent() { 
     return $this->belongsTo('Area'); 
    } 

} 

回答

0

我發現那位解決方案,它爲我的偉大工程。

class Area extends Eloquent { 
    public function subAreas() { 
     return $this->hasMany('Area', 'parent', 'id'); 
    } 

    public function parentArea() { 
     return $this->belongsTo('Area', 'parent', 'id'); 
    } 
} 
0

如果我沒看錯的,並從給定的代碼,Laravel抱怨area_id找不到列,是嗎?
發生這種情況是因爲您沒有提供外國專欄的名稱,Laravel試圖爲您猜出它。

變化關係定義這個

public function parent() { 
    return $this->belongsTo('Area', 'parent'); 
} 
+0

謝謝,我發佈了我的完整解決方案。 –