Contenido del curso
Administración
- 3

Configuración y Creación de Entidades en Symfony con Doctrine
07:05 min - 4

Relaciones de Tablas en Symfony: Categorías, Publicaciones y Comentarios
07:51 min - 5

Panel administrativo con EasyAdmin en Symfony
Viendo ahora - 6

Personaliza vistas en EasyAdmin con Symfony
14:39 min - 7

Traducción y Personalización de Vistas en Español para Administradores
06:12 min - 8

Datos falsos con Foundry en Symfony
07:32 min - 9

Slugs automáticos con SlugField en EasyAdmin
06:27 min - 10

Slugs únicos con validación lógica y física
08:45 min - 11

Configuración de Usuarios para Seguridad en Panel Administrativo
05:26 min - 12

Registro y login de usuarios en Symfony
08:24 min - 13

Gestión de Usuarios con CRUD en Panel Administrativo
09:06 min - 14

Configuración de Relaciones en Base de Datos con Doctrine y Symfony
11:29 min - 15

Encriptación de Contraseñas en Symfony paso a paso
07:47 min - 16

Actualizar panel admin con relaciones Symfony
09:36 min
Área de acceso público
- 17

Configuración de Rutas y Controladores en Symfony
12:19 min - 18

Formulario de Comentarios con Autenticación de Usuario
06:18 min - 19

Configuración de Formularios y Validaciones en Symfony
12:32 min - 20

Instalación y Configuración de Bootstrap con Symfony y Webpack
09:19 min - 21

Mejoras Visuales en Sistemas de Diseño y Administración de Bases de Datos
08:04 min
Conclusión
Panel administrativo con EasyAdmin en Symfony
Resumen
Configurar un panel administrativo en Symfony se vuelve sencillo cuando usas EasyAdmin, un bundle que te permite gestionar las entidades de tu base de datos desde la web sin escribir todo el CRUD a mano. Aquí aprendes a instalarlo, generar el dashboard y conectar tres entidades: categorías, publicaciones y comentarios.
¿Qué es EasyAdmin y para qué sirve en Symfony?
Cuando hablamos de gestionar tablas desde una interfaz web, EasyAdmin se convierte en tu mejor aliado dentro del ecosistema Symfony.
EasyAdmin es un componente que instalas con Composer y que automatiza la creación de un panel administrativo conectado a tus entidades. Una entidad representa una tabla en tu base de datos, así que cada vez que generas un CRUD, le estás dando a esa tabla cuatro superpoderes: create, read, update y delete.
La instalación arranca con un comando simple en la terminal donde indicas el proveedor y el nombre del bundle: easyadmin-bundle [0:30]. Junto con él se instalan piezas como el sistema de validación y el componente de traducción, que irás conociendo poco a poco.
¿Qué significa CRUD? Son las siglas de create, read, update y delete. Es decir, las cuatro operaciones básicas que puedes hacer sobre cualquier registro de tu base de datos.
¿Cómo crear el dashboard administrativo en Symfony?
El dashboard es el punto de entrada de tu panel y se genera con un solo comando.
Ejecuta php bin/console make:admin:dashboard [1:30] y responde las preguntas que aparecen. El sistema te propone un nombre y te sugiere guardarlo en una carpeta llamada Admin dentro de los controladores. Aceptar esa sugerencia es buena idea: aísla la lógica administrativa del sistema público y mantiene el proyecto ordenado.
Una vez creado, levantas el servidor con symfony serve y visitas la ruta /admin en el navegador. Verás una página de bienvenida con instrucciones, lo que confirma que todo se instaló correctamente.
Dentro del nuevo controlador encontrarás tres bloques clave:
- La ruta que activa el método principal.
- La configuración general del dashboard.
- La configuración de los elementos del menú.
¿Cómo generar un CRUD por entidad con make:admin:crud?
Con el dashboard listo, el siguiente paso es crear un CRUD por cada entidad que quieras administrar.
Usa el comando php bin/console make:admin:crud [3:00]. EasyAdmin lee tu carpeta de entidades y te muestra una lista numerada para que elijas cuál quieres exponer. En este caso son tres: categorías, publicaciones y comentarios. Repites el comando una vez por cada entidad y aceptas guardar todo dentro del namespace App\Controller\Admin.
Al terminar tendrás tres nuevos controladores, uno por entidad, listos para conectarse al menú.
¿Por qué guardar los CRUD en una carpeta Admin? Porque separa los controladores administrativos de los públicos, lo que mejora la seguridad y la organización del proyecto.
¿Cómo importar las entidades en el dashboard controller?
Dentro del DashboardController declaras los use de cada entidad: la de categorías, la de comentarios y la de publicaciones. Sin esa importación, las clases no estarán disponibles cuando configures los enlaces del menú.
¿Cómo redirigir el index al CRUD principal?
El método index() viene con comentarios que documentan varias opciones. La recomendada es retornar una redirección hacia un CRUD ya configurado usando la clase AdminUrlGenerator del namespace EasyCorp\Bundle\EasyAdminBundle\Router.
Al apuntar el index hacia PostCrudController, cada vez que entres a /admin se disparará directamente la vista de publicaciones. Si aún no tienes registros, verás un mensaje indicando que no hay publicaciones, lo cual es esperado.
¿Cómo configurar el menú con MenuItem y links al CRUD?
El menú lateral es lo que conecta visualmente tus entidades con sus respectivos CRUD.
Dentro del método configureMenuItems() agregas un MenuItem::linkToCrud() por cada entidad [6:30]. La idea es respetar la jerarquía del modelo: las categorías son padres de las publicaciones, y las publicaciones son padres de los comentarios. Ese orden ayuda al usuario administrador a entender el flujo de datos.
La estructura básica que necesitas incluye:
- Un
linkToCrudpara categorías. - Un
linkToCrudpara publicaciones. - Un
linkToCrudpara comentarios. - Un
linkToRouteopcional hacia el sitio público, usando un ícono comofa fa-home.
Personalizar el título del dashboard también es trivial: basta con editar el método configureDashboard() y cambiar el texto, por ejemplo poniendo un acento en Aplicación. Al actualizar el navegador, el título cambia.
¿Por qué no puedo crear publicaciones ni comentarios todavía?
Al entrar al panel notarás que solo puedes crear categorías sin problema. Si intentas crear una publicación, no aparece el campo de categoría; y si intentas crear un comentario, no aparece el campo de publicación.
Esto ocurre porque las publicaciones y los comentarios tienen dependencias con otras entidades, y EasyAdmin todavía no sabe cómo resolver esas relaciones en el formulario. Por ahora, agregar una categoría como PHP funciona perfecto y te permite probar las operaciones de editar y eliminar.
Antes de cerrar la sesión de trabajo, ejecuta git status para revisar qué archivos cambiaron. Verás modificaciones principalmente en los controladores de la carpeta Admin, que es exactamente lo que se buscaba. Cuéntame en los comentarios cómo te fue con tu primer panel y qué entidad vas a administrar primero.