2014-01-08 5 views
0

확인 내가이 테이블 "영역"이 있습니다laravel 웅변 한

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

이 테이블 영역을 포함하고, 각 영역이 다른 영역의 아들이 될 수 있으므로 부모의 열이 null이 될 수있다, 또는 다른 지역의 다른 이드.

이제는 Eloquent로 액세스 가능하게 만들고 싶습니다. 이것은 일대 다 관계입니다.

이 코드를 사용해 보았지만 이렇게 좋지는 않습니다.

class Area extends Eloquent { 

    public function sons() { 

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

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

} 

답변

0

변경 관계 정의는 I 솔루션, 그것은 나를 위해 잘 작동 세례반.

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

덕분에 전체 솔루션을 게시했습니다. –