首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Laravel's Eloquent中为Table-Per-Type继承建模?

如何在Laravel's Eloquent中为Table-Per-Type继承建模?
EN

Stack Overflow用户
提问于 2014-08-07 15:46:25
回答 1查看 799关注 0票数 2

例如,如何在Eloquent entities中对此数据库层次结构建模,以便在创建汽车或卡车时自动创建汽车条目:

代码语言:javascript
复制
- automobile
  id (PK)
  color, etc...

- car
  id (PK, automobile.id FK)
  doors, etc...

- truck
  id (PK, automobile.id FK)
  axis, etc...
EN

回答 1

Stack Overflow用户

发布于 2014-11-21 01:48:04

您可以查看此关系http://laravel.com/docs/4.2/eloquent#polymorphic-relations

这些多态关系允许您对此用例进行建模。我不知道在创建时是否为car创建了一个条目,但您可以很容易地自己创建它。希望这能有所帮助。

编辑:

要创建这样的关系,汽车表将获得两个新列,例如automobile_idautomobile_type,这两个列的重要部分是后缀_id_type。您的模型现在将如下所示。

代码语言:javascript
复制
- automobile
  id(PK)
  color, etc...
  automobile_id
  automobile_type

- car
  id(PK)
  doors, etc...

在您的汽车类中,您现在将添加一个函数,该函数需要根据您在表中选择的前缀命名,在本例中为“汽车”:

代码语言:javascript
复制
<?php

class Automobile extends Eloquent {

   ...

   public function automobile() {
      return $this->morphTo()
   }

}

当您创建一个新的实体时,您将汽车的id放入automobile_id = 1中,并为automobile_type提供您的汽车雄辩模型的类名。在这种情况下,我想应该是Car。对于创建工作流,我建议您允许同时填充汽车和汽车的字段,首先将汽车实体输入到数据库中,检索列id,然后将其填充到automobile_id中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25176905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档