好的我有这个表“区域”:
id -> primary key, int
parent -> int, index, nullable
areaName -> string
此表包含区域,每个区域可以是另一个区域的子区域,因此父列可以为null,也可以是任何其他区域的另一个id。
现在我想用Eloquent来访问它,这是一对多的关系。
我尝试过这段代码,但不是那么好,那些做过类似事情的人有什么想法吗?
class Area extends Eloquent {
public function sons() {
return $this->hasMany('Area', 'id', 'parent');
}
public function parent() {
return $this->belongsTo('Area');
}
}
答案 0 :(得分:0)
如果我没有错,并且从给定的代码中,Laravel抱怨找不到area_id
列,我是对的吗?
发生这种情况是因为您没有提供外部列的名称,Laravel会尝试为您猜测它。
将关系定义更改为此
public function parent() {
return $this->belongsTo('Area', 'parent');
}
答案 1 :(得分:0)
我找到了解决方案,它对我很有用。
class Area extends Eloquent {
public function subAreas() {
return $this->hasMany('Area', 'parent', 'id');
}
public function parentArea() {
return $this->belongsTo('Area', 'parent', 'id');
}
}