laravel雄辩的一对多同一个对象

时间:2014-01-08 07:23:33

标签: php laravel eloquent

好的我有这个表“区域”:

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');
    }

}

2 个答案:

答案 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');
    }
}
相关问题