Ceci est une ancienne révision du document !


Easyadmin

Installation

symfony composer req admin

Premier Dashboard

Création

symfony console make:admin:dashboard

Cette commande créé le contrôleur dans /src/admin/

Next steps:

  • Configure your Dashboard at src/Controller/Admin/DashboardController.php
  • Run make:admin:crud to generate CRUD controllers and link them from the Dashboard.

Création page d'accueil

Modification du contrôleur

On modifie la function index du controller pour qu'elle affiche le template Admin/index.html.twig

src\Controller\Admin\DashboardController.php
class DashboardController extends AbstractDashboardController
{
    /**
     * Page d'accueil de l'admin
     * @Route("/admin", name="admin")
     */
    public function index(): Response
    {
        // return parent::index(); <- Code original
        return $this->render('Admin/index.html.twig'); //<- Code modifié
    }

Création du template

  • On créé le répértoire templates\Admin
  • On y créé le fichier index.html.twig avec le code suivant…
templates\Admin\index.html.twig
{# templates/admin/my-custom-page.html.twig #}
{% extends '@EasyAdmin/page/content.html.twig' %}
 
{% block content_title %}The Title of the Page{% endblock %}
{% block page_actions %}
    Block Page_actions<br/>
    <a class="btn btn-primary" href="#">Some Action</a>
{% endblock %}
 
{% block main %}
Block Main 
{% endblock %}

Ce qui nous donne ceci :

Sécurité

Prérequis

Le système authentification doit être installé → Authentification

Configuration

Pour interdire l’accès a l'administration a n'importe qui on modifie le fichier config\packages\security.yaml

On décommente la ligne - { path: ^/admin, roles: ROLE_ADMIN }

config\packages\security.yaml
    access_control:
        - { path: ^/admin, roles: ROLE_ADMIN }  #<- a décommenter
        # - { path: ^/profile, roles: ROLE_USER }

CRUD

Création

symfony console make:admin:crud

Ajout du menu dans le controleur

Dans le controleurs DashboardController.php on ajoute une linge :

yield MenuItem::linkToCrud('%LabelDuMenu%', 'fas fa-list', %Entity%::class);

src\Controller\Admin\DashboardController.php
    public function configureMenuItems(): iterable
    {
        yield MenuItem::linkToDashboard('Dashboard', 'fa fa-home');
        // yield MenuItem::linkToCrud('The Label', 'fas fa-list', EntityClass::class);
        yield MenuItem::linkToCrud('Tickets', 'fas fa-list', GTicket::class); //<- Ligne ajoutée
    }

Les icones

Le paramètre 'fas fa-list' est une référence aux icônes de Font Awesome : List

Sources & Ressources

Vous pourriez laisser un commentaire si vous étiez connecté.