Laravel - 如何将外键用于具有标识外键的表?

时间:2016-06-16 13:00:21

标签: php database laravel foreign-keys

所以我有三个表:userscandidateslogs。现在candidates没有自己的ID,它有一个标识外键user_id。看起来很像这样:

-users-
id
name
etc.

-candidates-
user_id
type
etc.

现在我想要一个与logs具有一对多关系的表candidates,因为候选人可以拥有零个或多个logs。所以我想要一个candidates的外键,比如candidate_id。但是,像这样,Laravel不会自动理解这种关系。我应该将外键从logs命名为candidates以使Laravel了解这种关系?

2 个答案:

答案 0 :(得分:0)

我认为最简单的方法是给候选人自己的增量id,然后有两个关系表,candidate_user和candidate_log。它将根据Laravel docs

进行设置

答案 1 :(得分:0)

您的候选人表必须有主键。

不需要增量ID,但是不应该在没有主键的情况下离开表。

定义主键后,您可以将其用作参考。

Laravel将尝试猜测您的foreign_key名称:

https://laravel.com/docs/5.2/eloquent-relationships#one-to-many

  

请记住,Eloquent会自动确定Comment模型上的正确外键列。按照惯例,Eloquent将采用拥有模型的“蛇案”名称,并以_id为后缀。因此,对于此示例,Eloquent将假定Comment模型上的外键是post_id。

如果您的主键不是“id”列,则应使用protected $primaryKeypublic $incrementing属性来描述您的Eloquent模型中的主键。