【问题标题】:Reciproc relationship migration order in LaravelLaravel 中的互惠关系迁移顺序
【发布时间】:2017-04-23 20:07:13
【问题描述】:

我正在尝试在 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)

【问题讨论】:

    标签: php laravel migration


    【解决方案1】:

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

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

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

    【讨论】:

    • 我能做到吗?我没有想象如何为同一张表进行另一次迁移
    • @PHPLover 是的,你可以。我在答案中添加了一个示例,请检查。
    • 谢谢你的例子:)
    猜你喜欢
    • 2012-11-12
    • 2018-06-21
    • 2015-12-08
    • 2019-03-04
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    相关资源
    最近更新 更多