increments('id'); $table->string('name', 255); $table->softDeletes(); $table->timestamps(); }); Schema::table('users', function (Blueprint $table) { $table->unsignedInteger('role_id'); $table->foreign('role_id')->references('id')->on('role'); }); Schema::create('rule', function (Blueprint $table) { $table->increments('id'); $table->unsignedInteger('role_id'); $table->string('object', 50); $table->string('action', 50); $table->boolean('allow')->default(false); $table->timestamps(); $table->unique(['role_id', 'object', 'action']); $table->foreign('role_id')->references('id')->on('role')->onDelete('cascade'); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('users', function (Blueprint $table) { $table->dropForeign('users_role_id_foreign'); $table->dropColumn('role_id'); }); Schema::dropIfExists('rule'); Schema::dropIfExists('role'); } }