2014-01-08 45 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

谢谢,我发布了我的完整解决方案。 –