错误号:150“;外键约束的格式不正确Laravel

错误号:150“;外键约束的格式不正确Laravel,laravel,Laravel,物品迁移 Schema::create('articles', function (Blueprint $table) { $table->increments('id'); $table->integer('people_id'); $table->string('title'); $table->timestamps(); $table->fo

物品迁移

Schema::create('articles', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('people_id');
            $table->string('title');
            $table->timestamps();
            $table->foreign('author_id')->references('id')->on('people');
        });
人口迁移

Schema::create('people', function (Blueprint $table) {
            $table->increments('id');
            $table->string('first_name');
            $table->string('last_name');
            $table->string('twitter');
            $table->timestamps();
        });
错误


我不知道我做错了什么,这两个实体对我来说都是一致的,我不知道我为什么会收到错误150-

$table->integer('people_id')->unsigned();
换行-

$table->foreign('author_id')->references('id')->on('people');
对此-

$table->foreign('people_id')->references('id')->on('people');

检查
迁移的顺序。首先运行
people
表迁移,然后运行
articles
表迁移。

这是因为您尚未定义author\u id字段

Schema::create('articles', function (Blueprint $table) {
        $table->increments('id');
        $table->unsignedInteger('author_id');
        $table->string('title');
        $table->timestamps();
        $table->foreign('author_id')->references('id')->on('people');
    });

检查您的人员迁移表是否先运行,然后运行文章迁移(很高兴它有帮助:)
Schema::create('articles', function (Blueprint $table) {
        $table->increments('id');
        $table->unsignedInteger('author_id');
        $table->string('title');
        $table->timestamps();
        $table->foreign('author_id')->references('id')->on('people');
    });