From a43e4110e885671578c4c9cb0a797d25d90aff1d Mon Sep 17 00:00:00 2001 From: Vicente Bercasio Date: Sat, 5 Oct 2024 03:42:20 +0800 Subject: [PATCH] User Roles Permission Table in DB with models file and controller --- .../UserRolesPermissionController.php | 85 +++++++++++++++++++ app/Models/UserRolesPermission.php | 11 +++ ...33_create_user_roles_permissions_table.php | 52 ++++++++++++ 3 files changed, 148 insertions(+) create mode 100644 app/Http/Controllers/UserRolesPermissionController.php create mode 100644 app/Models/UserRolesPermission.php create mode 100644 database/migrations/2024_10_04_193633_create_user_roles_permissions_table.php diff --git a/app/Http/Controllers/UserRolesPermissionController.php b/app/Http/Controllers/UserRolesPermissionController.php new file mode 100644 index 0000000..876fa60 --- /dev/null +++ b/app/Http/Controllers/UserRolesPermissionController.php @@ -0,0 +1,85 @@ +id(); + + // Foreign keys + $table->unsignedBigInteger('user_id'); + $table->unsignedBigInteger('role_id'); + $table->unsignedBigInteger('permission_id'); + + // Foreign key constraints with cascade on delete + $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); + $table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade'); + $table->foreign('permission_id')->references('id')->on('permissions')->onDelete('cascade'); + + // Timestamps + $table->timestamp('created_at')->useCurrent(); + $table->timestamp('modified_at')->nullable()->useCurrentOnUpdate(); + $table->timestamp('deleted_at')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('user_roles_permissions', function (Blueprint $table) { + // Dropping foreign key constraints + $table->dropForeign(['user_id']); + $table->dropForeign(['role_id']); + $table->dropForeign(['permission_id']); + }); + + Schema::dropIfExists('user_roles_permissions'); + } +}