123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- <?php
-
- use Illuminate\Database\Schema\Blueprint;
- use Illuminate\Database\Migrations\Migration;
-
- class CreateAssignedRolesTable extends Migration
- {
-
-
- public function up()
- {
- // Creates the roles table
- Schema::create('roles', function ($table) {
- $table->increments('id')->unsigned();
- $table->string('name')->unique();
- $table->timestamps();
- });
-
- // Creates the assigned_roles (Many-to-Many relation) table
- Schema::create('assigned_roles', function ($table) {
- $table->increments('id')->unsigned();
- $table->integer('user_id')->unsigned();
- $table->integer('role_id')->unsigned();
- $table->foreign('user_id')->references('id')->on('users')
- ->onUpdate('cascade')->onDelete('cascade');
- $table->foreign('role_id')->references('id')->on('roles');
- });
-
- // Creates the permissions table
- Schema::create('permissions', function ($table) {
- $table->increments('id')->unsigned();
- $table->string('name')->unique();
- $table->string('display_name');
- $table->timestamps();
- });
-
- // Creates the permission_role (Many-to-Many relation) table
- Schema::create('permission_role', function ($table) {
- $table->increments('id')->unsigned();
- $table->integer('permission_id')->unsigned();
- $table->integer('role_id')->unsigned();
- $table->foreign('permission_id')->references('id')->on('permissions'); // assumes a users table
- $table->foreign('role_id')->references('id')->on('roles');
- });
- }
-
- /**
- * Reverse the migrations.
- *
- * @return void
- */
- public function down()
- {
- Schema::table('assigned_roles', function (Blueprint $table) {
- $table->dropForeign('assigned_roles_user_id_foreign');
- $table->dropForeign('assigned_roles_role_id_foreign');
- });
-
- Schema::table('permission_role', function (Blueprint $table) {
- $table->dropForeign('permission_role_permission_id_foreign');
- $table->dropForeign('permission_role_role_id_foreign');
- });
-
- Schema::drop('assigned_roles');
- Schema::drop('permission_role');
- Schema::drop('roles');
- Schema::drop('permissions');
- }
- }
|