Php 如何修复此错误错误错误号:150“;“外键约束格式不正确”;
我想在laravel中迁移acl迁移,但出现了此错误 错误 150“外键约束格式不正确” 表格Php 如何修复此错误错误错误号:150“;“外键约束格式不正确”;,php,mysql,laravel,acl,laravel-6,Php,Mysql,Laravel,Acl,Laravel 6,我想在laravel中迁移acl迁移,但出现了此错误 错误 150“外键约束格式不正确” 表格 public function up() { Schema::create('roles', function (Blueprint $table) { $table->Increments('id'); $table->string('title_fa'); $table->stri
public function up()
{
Schema::create('roles', function (Blueprint $table) {
$table->Increments('id');
$table->string('title_fa');
$table->string('title_en');
$table->timestamps();
});
Schema::create('permissions', function (Blueprint $table) {
$table->Increments('id');
$table->string('title_fa');
$table->string('title_en');
$table->timestamps();
});
Schema::create('role_user', function (Blueprint $table) {
$table->integer('role_id');
$table->integer('user_id');
$table->foreign('role_id')
->references('id')
->on('roles')
->onUpdate('cascade')
->onDelete('cascade');
$table->foreign('user_id')
->references('id')
->on('users')
->onUpdate('cascade')
->onDelete('cascade');
});
Schema::create('permission_role', function (Blueprint $table) {
$table->integer('permission_id');
$table->integer('role_id');
$table->foreign('permission_id')
->references('id')
->on('permissions')
->onUpdate('cascade')
->onDelete('cascade');
$table->foreign('role_id')
->references('id')
->on('roles')
->onUpdate('cascade')
->onDelete('cascade');
});
}
我尝试对角色id和用户id使用unsign integer
id
,我尝试了:
$table->primary(['role_id','user_id']);
但对我来说并不是这样的您想将整数更改为无符号的biginteger,如下所示:
public function up() {
Schema::create('roles', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('title_fa');
$table->string('title_en');
$table->timestamps();
});
Schema::create('permissions', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('title_fa');
$table->string('title_en');
$table->timestamps();
});
Schema::create('role_user', function (Blueprint $table) {
$table->unsignedBigInteger('role_id');
$table->unsignedBigInteger('user_id');
$table->foreign('role_id')
->references('id')
->on('roles')
->onUpdate('cascade')
->onDelete('cascade');
$table->foreign('user_id')
->references('id')
->on('users')
->onUpdate('cascade')
->onDelete('cascade');
});
Schema::create('permission_role', function (Blueprint $table) {
$table->unsignedBigInteger('permission_id');
$table->unsignedBigInteger('role_id');
$table->foreign('permission_id')
->references('id')
->on('permissions')
->onUpdate('cascade')
->onDelete('cascade');
$table->foreign('role_id')
->references('id')
->on('roles')
->onUpdate('cascade')
->onDelete('cascade');
});
}
要将整数更改为无符号biginteger,如下所示:
public function up() {
Schema::create('roles', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('title_fa');
$table->string('title_en');
$table->timestamps();
});
Schema::create('permissions', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('title_fa');
$table->string('title_en');
$table->timestamps();
});
Schema::create('role_user', function (Blueprint $table) {
$table->unsignedBigInteger('role_id');
$table->unsignedBigInteger('user_id');
$table->foreign('role_id')
->references('id')
->on('roles')
->onUpdate('cascade')
->onDelete('cascade');
$table->foreign('user_id')
->references('id')
->on('users')
->onUpdate('cascade')
->onDelete('cascade');
});
Schema::create('permission_role', function (Blueprint $table) {
$table->unsignedBigInteger('permission_id');
$table->unsignedBigInteger('role_id');
$table->foreign('permission_id')
->references('id')
->on('permissions')
->onUpdate('cascade')
->onDelete('cascade');
$table->foreign('role_id')
->references('id')
->on('roles')
->onUpdate('cascade')
->onDelete('cascade');
});
}