1

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

正是我想建立一个类别的层次结构。

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

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

但是当我在 ORM 模型中创建这样的函数时:

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

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

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

感谢您的建议!

4

3 回答 3

3

现在我得到了这个与 ORM 功能一起使用的功能。这很好用,我的观点可以处理它!

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

public function parent()
{
    return $this->belongs_to('Category','category_id');
}
于 2013-05-14T11:38:03.733 回答
1

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

public function parent()
{
    return Category::where('id', '=', $this->category_id)->first();
}
于 2013-05-08T17:15:11.417 回答
-1

对于一对多,您需要 2 个表。

表 1:类型

表 2:车辆

在表 1 中,您有 ID、姓名 (1, car)

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

在 SQL 中,这看起来像:

SELECT *
FROM Vehicles
WHERE type = 1

不知道这是否有帮助:)

于 2013-05-08T16:15:39.717 回答