src/Controller/Admin/MediaCrudController.php line 40

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Admin;
  3. use App\Admin\Field\FileField;
  4. use App\Entity\Media;
  5. use EasyCorp\Bundle\EasyAdminBundle\Config\Crud;
  6. use EasyCorp\Bundle\EasyAdminBundle\Config\Filters;
  7. use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController;
  8. use EasyCorp\Bundle\EasyAdminBundle\Field\AssociationField;
  9. use EasyCorp\Bundle\EasyAdminBundle\Field\TextField;
  10. use EasyCorp\Bundle\EasyAdminBundle\Filter\ChoiceFilter;
  11. use Vich\UploaderBundle\Form\Type\VichFileType;
  12. class MediaCrudController extends AbstractCrudController
  13. {
  14.     public static function getEntityFqcn(): string
  15.     {
  16.         return Media::class;
  17.     }
  18.     public function configureCrud(Crud $crud): Crud
  19.     {
  20.         return $crud;
  21.     }
  22.     public function configureFilters(Filters $filters): Filters
  23.     {
  24.         return $filters
  25.             ->add(
  26.                 ChoiceFilter::new('type')
  27.                     ->setChoices([
  28.                         'Image' => Media::IMAGE_TYPE,
  29.                         'Video' => Media::VIDEO_TYPE,
  30.                         'Audio' => Media::AUDIO_TYPE,
  31.                     ])
  32.             );
  33.     }
  34.     public function configureFields(string $pageName): iterable
  35.     {
  36.         yield FileField::new('fileName''bo.medias.field.file')
  37.             ->setBasePath($this->get('parameter_bag')->get('app.url.media'))
  38.             ->hideOnForm();
  39.         yield TextField::new('file''bo.medias.field.file')
  40.             ->setFormType(VichFileType::class)
  41.             ->setFormTypeOptions([
  42.                 'allow_delete' => false,
  43.                 'attr' => [
  44.                     'accept' => implode(','Media::UPLOAD_MIMES),
  45.                 ],
  46.             ])
  47.             ->setRequired(true)
  48.             ->onlyOnForms();
  49.     }
  50. }