Php Laravel 5.3-外键约束格式不正确

Php Laravel 5.3-外键约束格式不正确,php,mysql,laravel,eloquent,laravel-5.3,Php,Mysql,Laravel,Eloquent,Laravel 5.3,使用Laravel5.3和雄辩的模型,尝试制作一个用户角色模型。 主模式是我有两个表users和roles,每个用户有一个角色,每个角色有多个用户(一对多关系) 当我试图在用户表中创建一个引用角色表中id的外键时,会出现此错误 在Connection.php第647行中: SQLSTATE[HY000]:一般错误:1005无法创建表 mydata.#sql-7e0_71(错误号:150“外键约束不正确 (SQL:alter表“user”添加约束 “用户角色id外部”外键(“角色id”)引用角色(

使用Laravel5.3和雄辩的模型,尝试制作一个用户角色模型。 主模式是我有两个表usersroles,每个用户有一个角色,每个角色有多个用户(一对多关系)

当我试图在用户表中创建一个引用角色表中id的外键时,会出现此错误

在Connection.php第647行中:

SQLSTATE[HY000]:一般错误:1005无法创建表 mydata.#sql-7e0_71(错误号:150“外键约束不正确 (SQL:alter表“user”添加约束 “用户角色id外部”外键(“角色id”)引用角色(“id”))

在Connection.php第449行:

SQLSTATE[HY000]:一般错误:1005无法创建表 mydata.#sql-7e0_71(错误号:150“外键约束无效 格式不正确的“)

注意:我正在使用artisan命令
migrate
,我已经尝试了这些答案

这是我的
up()
函数,用于我的用户迁移

public function up()
    {
        Schema::create('user', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password');
            $table->integer('role_id')->unsigned();
            $table->string('remember_token')->nullable();
            $table->timestamps();

            $table->foreign('role_id')->references('id')->on('role');
        });
    }
对于角色

public function up()
{
    Schema::create('role', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('description');
        $table->timestamps();
    });
}

您正试图添加一个外键,该外键在
roles
表(
->on('roles')
)上具有引用,但在迁移文件中您正在创建一个名为
role
Schema::create('role',…
)的表。 你需要匹配这些


或者将角色表的名称更改为
角色
,或者您对
角色
表的引用。

可能的重复我更改了迁移的文件名以更改顺序,现在工作正常这是一个示例我忘了,但它在真实代码上写得正确