为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 迁移已成功迁移,但未在表中创建外键关系

Laravel 迁移已成功迁移,但未在表中创建外键关系

PHP
动漫人物 2023-11-03 16:46:26
我的 Laravel 应用程序成功创建了迁移中的所有表,但无法在表中创建外键关系,甚至在删除主记录时无法强制级联。这是迁移。    Schema::create('articles', function (Blueprint $table) {        $table->id('id');        $table->unsignedBigInteger('user_id');        $table->string('title');        $table->text('excerpt');        $table->text('body');        $table->timestamps();        $table->foreign('user_id')            ->references('id')            ->on('users')            ->onDelete('cascade');    });当我运行时 php artisan migrate它迁移成功。λ php artisan migrateMigration table created successfully.Migrating: 2014_10_12_000000_create_users_tableMigrated:  2014_10_12_000000_create_users_table (0.11 seconds)Migrating: 2014_10_12_100000_create_password_resets_tableMigrated:  2014_10_12_100000_create_password_resets_table (0.1 seconds)Migrating: 2019_08_19_000000_create_failed_jobs_tableMigrated:  2019_08_19_000000_create_failed_jobs_table (0.07 seconds)Migrating: 2020_08_26_122846_create_articles_tableMigrated:  2020_08_26_122846_create_articles_table (0.14 seconds)但是,当我检查数据库时,没有创建关系,只是创建外键索引。 检查此链接中的文章表图像。我已经标记了必要的部分在此处检查用户表图像。我已经突出显示了主键。我添加了一些与用户和文章相关的工厂数据,当我删除用户时,这些文章将被保留为孤立的。可能出什么问题了?PHP 版本:7.3.21MySql版本:5.7.31MariaDB 版本:10.4.13Laravel 框架版本:7.25.0先感谢您。
查看完整描述

2 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

我所做的就是转到config文件夹然后database.php将 mysql 数据库引擎从 null 更改为 innoDB 即来自:


//...

'engine' => null,

//...

到:


//...

'engine' => 'InnoDB',

//...


查看完整回答
反对 回复 2023-11-03
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

您用于Schema::create创建表。


在 Laravel 文档中,我Schema::table在使用外键时看到。也许你应该尝试拆分你的代码:


Schema::create('articles', function (Blueprint $table) {

    $table->id('id');

    $table->unsignedBigInteger('user_id');

    $table->string('title');

    $table->text('excerpt');

    $table->text('body');

    $table->timestamps();

});


Schema::table('articles', function (Blueprint $table) {

    $table->foreign('user_id')

        ->references('id')

        ->on('users')

        ->onDelete('cascade');


});


查看完整回答
反对 回复 2023-11-03
  • 2 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信