Laravel中的互惠关系迁移顺序

时间:2017-04-23 11:59:53

标签: php laravel migration

我正在尝试在Laravel Migration中创建一个关系:

User > has many > Images
User > has one > Image (image_id) <-- Avatar

Image > belongsTo > User (user_id)

如果我使用references创建迁移以标记关系,则迁移将失败,因为图像需要用户,而用户需要图像。

我应该如何订购迁移以防止这种情况发生?

https://laravel.com/docs/5.4/migrations

1 个答案:

答案 0 :(得分:2)

您可以按任意顺序创建usersimages表,并在创建表后在第二次迁移中添加foreign key constrains。甚至在单独的迁移文件中。

要添加约束,请使用table()方法而不是create()

Schema::table('images', function (Blueprint $table) {
    $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
});