1. Go to this page and download the library: Download lch/menu-bundle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
lch / menu-bundle example snippets
namespace App\Controller\Admin;
use App\Form\Type\Extension\MenuTypeExtension;
use App\Repository\MenuRepository;
use Lch\MenuBundle\Entity\Menu;
use Lch\MenuBundle\Form\MenuType;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
/**
* @Route("/admin/menu")
* @IsGranted("ROLE_ADMIN")
*/
class MenuController extends AbstractController
{
/**
* @Route(
* "/{page}",
* name="admin.menu.list",
* function create(Request $request): Response
{
return $this->edit(new Menu(), $request);
}
/**
* @Route("/edit/{id}", name="admin.menu.edit")
*
* @param Menu $menu
* @param Request $request
*
* @return Response
*/
public function edit(Menu $menu, Request $request): Response
{
// Use the MenuType from bundle
$form = $this->createForm(MenuType::class, $menu);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($menu);
$em->flush();
if ($form->get('save')->get('save')->isClicked()) {
return $this->redirectToRoute('admin.menu.list');
}
return $this->redirectToRoute('admin.menu.edit', ['id' => $menu->getId()]);
}
return $this->render('admin/menu/edit.html.twig', [
'menu' => $menu,
'form' => $form->createView()
]);
}
/**
* @Route("/delete/{id}", name="admin.menu.delete")
* @Method({"GET", "DELETE"})
*
* @param Menu $menu
* @param Request $request
* @return Response
*/
public function delete(Menu $menu, Request $request): Response
{
$form = $this->createFormBuilder()
->setMethod('DELETE')
->add('delete', SubmitType::class, [
'attr' => [
'class' => 'btn btn-danger'
]
])
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->remove($menu);
$em->flush();
return $this->redirectToRoute('admin.menu.list');
}
return $this->render('admin/menu/delete.html.twig', [
'menu' => $menu,
'form' => $form->createView()
]);
}
}