我想在laravel中迁移ACL迁移,但出现此错误
errno:150“外键约束格式不正确”
我的桌子:
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');
});
}
我尝试unsigninteager的角色ID和用户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');
});
}