W EasyAdmin możemy użyć standardowego kontrolera Symfony z routingiem i widokiem. Dla przykładu zrobimy prościutką podstronę informacyjną – „About”, jak na poniższym obrazku. Podstrona informacyjna będzie includowana do layoutu EasyAdmina.
Najpierw dodamy do konfiguracji menu – sekcję o nazwie About z parametrem route i wartością np: ’about_admin’.
W tym celu edytuj plik easy_admin.yaml (/config/packages/easy_admin.yaml):
1 2 3 4 5 |
easy_admin: site_name: 'CMS' design: menu: - { label: 'About', route: 'about_admin' } |
Identyfikator about_admin powiązany zostanie z routingiem w kontrolerze za pomocą tej samej nazwy: @Route(„/admin/about”, name=”about_admin”). Dzięki temu Symfony będzie wiedział, do której metody dobrać się, aby wyświetlić stronę pod adresem /admin/about. Oczywiście adres ten możesz zmienić, według własnego uznania 🙂
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php // src/Controller/AdminController.php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Routing\Annotation\Route; class AdminController extends AbstractController { /** * @Route("/admin/about", name="about_admin") */ public function About() { return $this->render('easyadmin/about.html.twig', [ 'title' => 'About CMS', ]); } } |
Na koniec stwórz widok about.html.twig (/templates/easyadmin/about.html.twig):
1 2 3 4 5 6 7 8 9 10 11 |
{% extends "@EasyAdmin/default/layout.html.twig" %} {% block main %} <h1> {{ title }} </h1> <p><strong>Author</strong>: John Doe</p> <p><strong>Engine</strong>: <a href="https://symfony.com/" target="_blank">Symfony & EasyAdmin</a></p> <hr /> Copyright © 2018 {% endblock %} |
Do naszego szablonu dołączamy layout EasyAdmin:
{% extends „@EasyAdmin/default/layout.html.twig” %}.
Zawartość strony wyświetlamy w bloku main: {% block main %} … {% endblock %}
I to wszystko w tym temacie.
Do następnego! –>