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

无法添加或更新子行:外键约束失败 - Laravel 7

无法添加或更新子行:外键约束失败 - Laravel 7

PHP
BIG阳 2022-12-23 16:01:50
我正在尝试1:1在我的访客和联系人之间添加关系<?phpuse Illuminate\Database\Migrations\Migration;use Illuminate\Database\Schema\Blueprint;use Illuminate\Support\Facades\Schema;class AddRelationToVisitorsDRelationToVisitorsContacts extends Migration{    public function up()    {        Schema::table('contacts', function(Blueprint $table)        {            $table->bigInteger('visitor_id')->unsigned();            $table->foreign('visitor_id')->references('id')->on('visitors')->onDelete('cascade');        });    }    public function down()    {        Schema::table('contacts', function($table)        {            $table->dropForeign('contacts_visitor_id_foreign');            $table->dropColumn('visitor_id');        });        Schema::table('visitors', function(Blueprint $table)        {            $table->dropColumn('contact_id');        });    }}运行时php artisan migrateMigrating: 2020_04_16_104641_update_contacts_table_04_16_2020
查看完整描述

3 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

在最新版本的 laravel 中,主键是 biginteger。所以你可能需要改变这个

$table->integer('visitor_id')->unsigned();

有了这个

$table->bigInteger('visitor_id')->unsigned();


查看完整回答
反对 回复 2022-12-23
?
呼唤远方

TA贡献1856条经验 获得超11个赞

visitors 表中的 id 字段应该是bigIncrement类型



查看完整回答
反对 回复 2022-12-23
?
FFIVE

TA贡献1797条经验 获得超6个赞

如果您的表有数据,最好将已存在数据的列值设置为空,或将该列设置为可为空。

$table->bigInteger('visitor_id')->unsigned()->nullable();


查看完整回答
反对 回复 2022-12-23
  • 3 回答
  • 0 关注
  • 133 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号