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

我正在尝试1:1在我的访客和联系人之间添加关系


<?php


use 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 migrate

Migrating: 2020_04_16_104641_update_contacts_table_04_16_2020


BIG阳
浏览 134回答 3
3回答

慕的地10843

在最新版本的 laravel 中,主键是 biginteger。所以你可能需要改变这个$table->integer('visitor_id')->unsigned();有了这个$table->bigInteger('visitor_id')->unsigned();

呼唤远方

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

FFIVE

如果您的表有数据,最好将已存在数据的列值设置为空,或将该列设置为可为空。$table->bigInteger('visitor_id')->unsigned()->nullable();
打开App,查看更多内容
随时随地看视频慕课网APP