Laravel 不在拉威尔7号做桌子

Laravel 不在拉威尔7号做桌子,laravel,laravel-7,Laravel,Laravel 7,我尝试了不同的方法来解决这个问题,但是没有一种方法能够解决这个问题。这部分代码是用于在Laravel中建立关系的,但是这段代码在Laravel 5中有效,但在Laravel 7中容易出错 错误: SQLSTATE[HY000]:一般错误:1005无法创建表shoplaravelrole\u-user(errno:150“外键约束格式不正确”)(SQL:alter-tablerole\u-user添加约束role\u-user\u-id\u-Foreign外键(role\u-id)引用角色(id)

我尝试了不同的方法来解决这个问题,但是没有一种方法能够解决这个问题。这部分代码是用于在Laravel中建立关系的,但是这段代码在Laravel 5中有效,但在Laravel 7中容易出错

错误: SQLSTATE[HY000]:一般错误:1005无法创建表
shoplaravel
role\u-user
(errno:150“外键约束格式不正确”)(SQL:alter-table
role\u-user
添加约束
role\u-user\u-id\u-Foreign
外键(
role\u-id
)引用
角色
id
)关于删除级联(关于更新级联)


删除
biginger
并仅使用
unsignedInteger

Schema::create('roles', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('title')->nullable();
        $table->timestamps();
    });
    Schema::create('permissions', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('title')->nullable();
        $table->timestamps();
    });

    Schema::create('role_user', function (Blueprint $table) {
        $table->unsignedInteger('role_id');
        $table->unsignedInteger('user_id');

        $table->foreign('role_id')
            ->references('id')
            ->on('roles')
            ->onDelete('cascade')
            ->onUpdate('cascade');

        $table->foreign('user_id')
            ->references('id')
            ->on('users')
            ->onDelete('cascade')
            ->onUpdate('cascade');

        $table->primary(['role_id', 'user_id']);
    });
    Schema::create('permission_role', function (Blueprint $table) {
        $table->unsignedInteger('role_id');
        $table->unsignedInteger('permission_id');

        $table->foreign('role_id')
            ->references('id')
            ->on('roles')
            ->onDelete('cascade')
            ->onUpdate('cascade');

        $table->foreign('permission_id')
            ->references('id')
            ->on('permissions')
            ->onDelete('cascade')
            ->onUpdate('cascade');
        $table->primary(['permission_id', 'role_id']);
    });

外键的类型必须与其引用的列完全相同

Laravel的默认用户表迁移使用
$table->increments('id')-别名
$table->bignrements('id')

更改
$table->增量('id')
$table->bigingress('id')在您的
角色
权限
表迁移中


关于迁移列的更多信息:

这又是一个问题:SQLSTATE[HY000]:一般错误:1005无法创建表
shoplaravel
role\u user
(errno:150“外键约束格式不正确”)(SQL:alter table
role\u user
添加约束
role\u user\u id\u Foreign
外键(
user\u id
)参考
用户
id
)关于删除层叠更新层叠)我真的很感谢你。你是救生员,我的问题解决了。
Schema::create('roles', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('title')->nullable();
        $table->timestamps();
    });
    Schema::create('permissions', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('title')->nullable();
        $table->timestamps();
    });

    Schema::create('role_user', function (Blueprint $table) {
        $table->unsignedInteger('role_id');
        $table->unsignedInteger('user_id');

        $table->foreign('role_id')
            ->references('id')
            ->on('roles')
            ->onDelete('cascade')
            ->onUpdate('cascade');

        $table->foreign('user_id')
            ->references('id')
            ->on('users')
            ->onDelete('cascade')
            ->onUpdate('cascade');

        $table->primary(['role_id', 'user_id']);
    });
    Schema::create('permission_role', function (Blueprint $table) {
        $table->unsignedInteger('role_id');
        $table->unsignedInteger('permission_id');

        $table->foreign('role_id')
            ->references('id')
            ->on('roles')
            ->onDelete('cascade')
            ->onUpdate('cascade');

        $table->foreign('permission_id')
            ->references('id')
            ->on('permissions')
            ->onDelete('cascade')
            ->onUpdate('cascade');
        $table->primary(['permission_id', 'role_id']);
    });