src/Controller/Admin/ArticleCrudController.php line 57

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Admin;
  3. use App\Entity\Article;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController;
  6. use EasyCorp\Bundle\EasyAdminBundle\Field\ImageField;
  7. use EasyCorp\Bundle\EasyAdminBundle\Field\IntegerField;
  8. use EasyCorp\Bundle\EasyAdminBundle\Field\TextareaField;
  9. use EasyCorp\Bundle\EasyAdminBundle\Field\TextField;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. use EasyCorp\Bundle\EasyAdminBundle\Config\Crud;
  14. use EasyCorp\Bundle\EasyAdminBundle\Field\NumberField;
  15. use Knp\Component\Pager\PaginatorInterface;
  16. use EasyCorp\Bundle\EasyAdminBundle\Config\Action;
  17. use EasyCorp\Bundle\EasyAdminBundle\Config\Actions;
  18. class ArticleCrudController extends AbstractCrudController
  19. {
  20.     public static function getEntityFqcn(): string
  21.     {
  22.         return Article::class;
  23.     }
  24.     public function configureActions(Actions $actions): Actions
  25.     {
  26.         $actions->add(Crud::PAGE_INDEXAction::DETAIL)
  27.         ->update(Crud::PAGE_NEWAction::SAVE_AND_RETURN, function (Action $action) {
  28.             return $action->setLabel('Enregistrer');
  29.         });
  30.         return $actions;
  31.     }
  32.     public function configureCrud(Crud $crud): Crud
  33.     {
  34.         return $crud->setPageTitle('index''Articles');
  35.     }
  36.     public function configureFields(string $pageName): iterable
  37.     {
  38.         return [
  39.             TextField::new('titre'),
  40.             NumberField::new('prix')->setFormTypeOptions(["attr" => ['min' => '0','pattern'=>'[0-9]+''oninput'=>"this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"]])->setRequired(true),
  41.             NumberField::new('quantite')->setFormTypeOptions(["attr" => ['min' => '0','pattern'=>'[0-9]+''oninput'=>"this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"]])->setRequired(true),
  42.             TextareaField::new('description'),
  43.             ImageField::new('image''Photo')->setUploadDir('public/imagees/galery')->setBasePath('imagees/galery')->setUploadedFileNamePattern('[randomhash].[extension]')->setRequired($pageName !== Crud::PAGE_EDIT)
  44.             ->setFormTypeOptions(["attr" => ['accept' => 'image/*']]),
  45.             ImageField::new('extrait')->setUploadDir('/public/upload/galerie/images')->setBasePath('upload/galerie/images')->setUploadedFileNamePattern('[randomhash].[extension]')
  46.             ->setFormTypeOptions(["attr" => ['accept' => 'image/*, application/pdf, application/vnd.ms-excel']])
  47.             ->setTemplatePath('admin/fields/vich_uploader_pdf.html.twig')->setRequired($pageName !== Crud::PAGE_EDIT),
  48.         ];
  49.     }
  50.     #[Route('/show/article/detail/{id}'name'show_article_detail')]
  51.     public function showByArticleDetail(Article $articleRequest $requestEntityManagerInterface $entityManager): Response
  52.     {
  53.         return $this->render('article/detail.html.twig', [
  54.              'article'=>$article,
  55.          ]);
  56.     }
  57.     #[Route('/list/article/index/'name'index_article')]
  58.     public function listServices(Request $requestEntityManagerInterface $entityManagerPaginatorInterface $paginator): Response
  59.     {
  60.         $donnees $entityManager->getRepository(Article::class)->findAll();
  61.         $articles $paginator->paginate(
  62.             $donnees,
  63.             $request->query->getInt('page'1),
  64.             10
  65.         );
  66.         return $this->render('article/index.html.twig', [
  67.              'articles'=>$articles,
  68.          ]);
  69.     }
  70.     // #[Route('/', name: 'show_articles')]
  71.     // public function showArticle(Request $request, EntityManagerInterface $entityManager): Response {
  72.     //     $article = $entityManager->getRepository(Article::class)->findAll();
  73.     //     return $this->render('accueil/accueil.html.twig', [
  74.     //         'articles'=>$article
  75.     //     ]);
  76.     // }
  77. }