EasyAdmin es un paquete que muy utilizado en symfony a la hora de montar un administrador para las entidades o clases que podemos tener en un proyecto dado de forma rapida y facil, por defecto te genera en cada crud que creas las acciones de editar, añadir en el menu de cada vista, pero de seguro se les hará necesario añadir nuevas acciones para complementar la funcionalidad de su proyecto y esto es lo que quiero compartir con ustedes de forma breve les contaré como hacerlo de forma muy facil.
Partimos de que tienes instalado y proyecto Symfony con easyadmin y todas las dependencias necesarias para su correcto funcionamiento. Tambien que ya tengas las crud generadas y listas para usar.
Tomaremos como ejemplo un proyecto donde tengamos una entidad Productos y necesitamos gestionar esos productos y necesitamos algo más que el new,edit y delete, por lo que se nos es imprescindible que no salga una opcion más en el menú, en este caso la accion categorizar productos, y para hacer esto no podemos usar las constantes que vienen definidas en easyadmin, tenemos que crear un action nosotros mismos que apunte a un metodo dentro de la misma crud y agregarlo a las action en el metodo especial configureActions.
Lo anterior quedaria asi:
· Tenemos la crud producto generada
· Agregamos el metodo configureActions
public function configureActions(Actions $actions): Actions
{
$categorizarproducto= Action::new('categorizarproducto', 'Categorizar producto')->linkToCrudAction('renderCategorizarproducto');
return $actions->add(Crud::PAGE_INDEX, Action::DETAIL)->add(Crud::PAGE_INDEX, $categorizarproducto);
}
Luego construimos el metodo renderCategorizarproducto
public function renderCategorizarproducto(AdminContext $context,EntityManagerInterface $entityManager
{ }
Podemos en este metodo renderizar a una vista de cualquier plantilla que queramos