Laravel ORM模型层次结构?

时间:2013-05-08 15:14:58

标签: php orm laravel laravel-3

我想为一个模型创建一对多关系。

我想构建一个类别层次结构。

为此,我有一个迁移脚本,用于创建外键/列category_id。

在数据库中这很容易。创建一个类别“汽车”。创建另一个类别“奥迪”,其父ID与“汽车”的ID相关联。

但是当我在ORM模型中创建一个如下函数时:

public function category() {
    return $this->belongs_to('Category');
}

然后我创建了一个无限循环。

我做错了什么?也许这是不可能的?

感谢您的建议!

3 个答案:

答案 0 :(得分:3)

现在我使用了ORM功能。这很好用,我的观点可以处理它!

public function children() {
    return $this->has_many('Category','category_id');
}

public function parent()
{
    return $this->belongs_to('Category','category_id');
}

答案 1 :(得分:1)

好的,我最后编写了一个parent()函数,它返回where子句的值:

public function parent()
{
    return Category::where('id', '=', $this->category_id)->first();
}

答案 2 :(得分:-1)

对于一对多,你需要2张桌子。

表1:类型

表2:车辆

在表1中,您有ID,姓名(1,汽车)

在表2中,您有ID,名称,类型(1,奥迪,FK到Types.ID)

在SQL中,这看起来像是:

SELECT *
FROM Vehicles
WHERE type = 1

不知道这是否有帮助:)