Laravel Eloquent中的多个外键

时间:2015-07-01 14:57:41

标签: sql laravel eloquent

我正在建立一个数据库,我们正在跟踪这些旅行'车辆需要。每次旅行只有一个起点和一个终点,所以我的第一个想法是:

    trips:
      id (int) - primary key
      location_start (int) - foreign key
      location_end (int) - foreign key
    locations:
      id (int) - primary key
      name(text)

location_start和location_end将存储位置表中的id。但是,我没有看到如何在Eloquent中管理这个,当我使用vertabelo.com构建这个结构时,我收到一条错误消息"参考名称必须是唯一的"

我应该使用数据透视表吗?如果是这样,我不知道如何强制执行每次旅行的关系只能有两个位置,即起点和终点。

1 个答案:

答案 0 :(得分:1)

阅读documentation

在您的情况下,创建包含此类内容的迁移

Schema::table('trips', function ($table) {
    $table->integer('location_start')->unsigned();

    $table->foreign('location_start')->references('id')->on('locations');
});

最后一点,外键定义是在架构构建器中定义的,而不是在Eloquent中定义的。