Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel迁移上的外键导致一般错误1215_Laravel_Laravel Artisan_Artisan Migrate - Fatal编程技术网

Laravel迁移上的外键导致一般错误1215

Laravel迁移上的外键导致一般错误1215,laravel,laravel-artisan,artisan-migrate,Laravel,Laravel Artisan,Artisan Migrate,我正在尝试使用Laravels迁移创建多个带有外键的表。我有一个这样的问题迁移表 Schema::create('problems', function($table) { $table->increments('id'); $table->integer('created_by')->unsigned(); $table->foreign('created_by')->refe

我正在尝试使用Laravels迁移创建多个带有外键的表。我有一个这样的问题迁移表

Schema::create('problems', function($table)
        {
            $table->increments('id');
            $table->integer('created_by')->unsigned();
            $table->foreign('created_by')->references('id')->on('users');
            $table->integer('category')->unsigned();
            $table->foreign('category')->references('id')->on('categories');
            $table->timestamps();
        });
类别迁移

Schema::create('categories', function($table)
        {
            $table->increments('id');
            $table->string('category_name');
            $table->timestamps();
        });
我在用户迁移中的第一个外键工作正常,但只要它点击类别id的外键,就会给出一个

SQLSTATE HY000一般错误1215不可能的合同 d'index externe(SQL;alter表'problems'添加约束 问题\u类别\u外键(“类别”)引用 “类别”(“id”))

(我不能正确地阅读法语,也不知道为什么法语会给我带来错误。我无法找到改变它的方法,因为我不是法国人,也无法理解它)


我不明白为什么这对其中一个有效,而对另一个无效,因为它们本质上是一样的。

我不得不在另一个迁移文件中添加外键,解决了这个问题

我不得不在另一个迁移文件中添加外键,解决了这个问题

我不得不在另一个迁移文件中添加外键,解决了这个问题

我不得不在另一个迁移文件中添加外键,解决了这个问题

您需要确保迁移文件的顺序正确。例如,在实际创建类别表本身之前,不能使用引用类别表上的
id
的外键创建问题表


对于法语错误问题,请看这个。

您需要确保迁移文件的顺序正确。例如,在实际创建类别表本身之前,不能使用引用类别表上的
id
的外键创建问题表


对于法语错误问题,请看这个。

您需要确保迁移文件的顺序正确。例如,在实际创建类别表本身之前,不能使用引用类别表上的
id
的外键创建问题表


对于法语错误问题,请看这个。

您需要确保迁移文件的顺序正确。例如,在实际创建类别表本身之前,不能使用引用类别表上的
id
的外键创建问题表


对于法语错误问题,请看这个。

您必须更改迁移顺序

|-database/
|--migrations/
|---2015_02_02_141725_create_problems_table.php
|---2015_03_01_234626_create_categories_table.php
应该是:

|-database/
|--migrations/
|---2015_01_01_234626_create_categories_table.php
|---2015_02_02_141725_create_problems_table.php
最后:

php artisan migrate

您必须更改迁移顺序

|-database/
|--migrations/
|---2015_02_02_141725_create_problems_table.php
|---2015_03_01_234626_create_categories_table.php
应该是:

|-database/
|--migrations/
|---2015_01_01_234626_create_categories_table.php
|---2015_02_02_141725_create_problems_table.php
最后:

php artisan migrate

您必须更改迁移顺序

|-database/
|--migrations/
|---2015_02_02_141725_create_problems_table.php
|---2015_03_01_234626_create_categories_table.php
应该是:

|-database/
|--migrations/
|---2015_01_01_234626_create_categories_table.php
|---2015_02_02_141725_create_problems_table.php
最后:

php artisan migrate

您必须更改迁移顺序

|-database/
|--migrations/
|---2015_02_02_141725_create_problems_table.php
|---2015_03_01_234626_create_categories_table.php
应该是:

|-database/
|--migrations/
|---2015_01_01_234626_create_categories_table.php
|---2015_02_02_141725_create_problems_table.php
最后:

php artisan migrate

几天前我也有同样的问题,问题如下:

使用时
$table->increments('id')
,它生成长度为10的无符号整数。和
$table->integer('user_id')
生成长度为11的非
无符号
整数

要解决此问题,您可以放弃
未签名的
,将所有与其他字段相关的字段表设置为一个
自动递增
字段,如下所示:

$table->integer('id', true); // true represents the auto increment type

当然,设置
$table->engine='InnoDB'

几天前我遇到了同样的问题,问题如下:

使用时
$table->increments('id')
,它生成长度为10的无符号整数。和
$table->integer('user_id')
生成长度为11的非
无符号
整数

要解决此问题,您可以放弃
未签名的
,将所有与其他字段相关的字段表设置为一个
自动递增
字段,如下所示:

$table->integer('id', true); // true represents the auto increment type

当然,设置
$table->engine='InnoDB'

几天前我遇到了同样的问题,问题如下:

使用时
$table->increments('id')
,它生成长度为10的无符号整数。和
$table->integer('user_id')
生成长度为11的非
无符号
整数

要解决此问题,您可以放弃
未签名的
,将所有与其他字段相关的字段表设置为一个
自动递增
字段,如下所示:

$table->integer('id', true); // true represents the auto increment type

当然,设置
$table->engine='InnoDB'

几天前我遇到了同样的问题,问题如下:

使用时
$table->increments('id')
,它生成长度为10的无符号整数。和
$table->integer('user_id')
生成长度为11的非
无符号
整数

要解决此问题,您可以放弃
未签名的
,将所有与其他字段相关的字段表设置为一个
自动递增
字段,如下所示:

$table->integer('id', true); // true represents the auto increment type
当然,设置
$table->engine='InnoDB'