Hey guys I tried too much stuff and read some blogs or discussion I didn't fix my problem I'm new in laravel this project. I got error when I want to create to database this error like
E:\xampp\htdocs\shop\vendor\laravel\framework\src\Illuminate\Database\Connection.php:463 PDOException::("SQLSTATE[HY000]: General error: 1005 Can't create table `shop`.`role_user` (errno: 150 "Foreign key constraint is incorrectly formed")") 2 E:\xampp\htdocs\shop\vendor\laravel\framework\src\Illuminate\Database\Connection.php:463 PDOStatement::execute()
class CreateRoleAndPermissionTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { 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->integer('role_id')->unsigned(); $table->integer('user_id')->unsigned(); $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->integer('role_id')->unsigned(); $table->integer('permission_id')->unsigned(); $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']); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('role_and_permission'); }
Change all instances of integer
to biginteger
, I am assuming you are using a current version of Laravel which changed the increment field to 'biginteger'. And $table->increments('id');
to $table->id();
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.