68. Crear crud de roles
2 comentarios
Inicia sesión para comentar
Comentarios:
-
John Mejia hace 7 meses
Modificación de la tabla de permisos
Editamos el archivo de migración asociado (por ej. database\migrations\xxxx_create_permission_tables.php) para adicionar el campo "description":
return new class extends Migration { public function up(): void { // ... Schema::create($tableNames['permissions'], function (Blueprint $table) { $table->bigIncrements('id'); $table->string('name'); $table->string('description'); $table->string('guard_name'); $table->timestamps(); $table->unique(['name', 'guard_name']); }); // ... } }
A continuación modificamos el seeder en database\seeders\RoleSeeder.php y asignamos una descripción para cada nombre, por ejemplo:
Permission::create([ 'name' => 'admin.home', 'description' => 'Ver Dashboard' ])->syncRoles([$role1, $role2]);
Aprovechamos para adicionar también el manejo de permisos para la gestión de roles (los asignamos al rol administrador o $role1):
Permission::create([ 'name' => 'admin.roles.index', 'description' => 'Listar roles' ])->assignRole($role1); Permission::create([ 'name' => 'admin.roles.create', 'description' => 'Crear roles' ])->assignRole($role1); Permission::create([ 'name' => 'admin.roles.edit', 'description' => 'Editar roles' ])->assignRole($role1); Permission::create([ 'name' => 'admin.roles.destroy', 'description' => 'Eliminar roles' ])->assignRole($role1);
Antes de reconstruir la base de datos, recuerda limpiar el directorio de imágenes (public\storage\posts). Este proceso puede ser realizado directamente desde el seeder adicionando la siguiente línea en el script database\seeders\PostSeeder.php:
class PostSeeder extends Seeder { public function run(): void { // Creamos la carpeta si no existe ya if (!File::exists(public_path('storage/posts'))) { File::makeDirectory(public_path('storage/posts'), 0777, true); } else { // Si existe, remueve TODO contenido previo del directorio File::cleanDirectory(public_path('storage/posts')); } // ... } }
Ahora si procedemos a reconstruir las tablas ejecutando por línea de comandos:
php artisan migrate:fresh --seed
Al finalizar el proceso, continuar con la creación del controlador y las vistas del CRUD.
-
John Mejia hace 7 meses
Creación del controlador para roles
Ejecutar por línea de comandos:php artisan make:controler Admin\RoleController -r
En el archivo routes\admin.php adicionamos el enrutamiento para roles:
Route::resource('roles', RolController::class) ->except('show') ->names('admin.roles');
Adicionamos el menú en el archivo config\adminlte.php:
'menu' => [ ... [ 'text' => 'Roles', 'route' => 'admin.roles.index', 'icon' => 'far fa-fw fa-users-cog', 'can' => 'admin.roles.index' ], ... ]
Modificamos el archivo de controlador en app\Http\Controllers\Admin\RolController.php.
Y creamos las respectivas vistas en resources\views\admin\roles.