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