我正在尝试在Laravel Migration中创建一个关系:
User > has many > Images
User > has one > Image (image_id) <-- Avatar
Image > belongsTo > User (user_id)
如果我使用references
创建迁移以标记关系,则迁移将失败,因为图像需要用户,而用户需要图像。
我应该如何订购迁移以防止这种情况发生?
答案 0 :(得分:2)
您可以按任意顺序创建users
和images
表,并在创建表后在第二次迁移中添加foreign key constrains。甚至在单独的迁移文件中。
要添加约束,请使用table()
方法而不是create()
:
Schema::table('images', function (Blueprint $table) {
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
});