Bonjour à tous,
Je suis en train de travailler sur un projet en Symfony 5.4 avec le bundle EasyAdmin 3.
Voici mon controller CRUD :
<?php
namespace App\Controller\Admin;
use App\Entity\FormulairePhotos;
use App\Entity\FormulaireEtapes;
use EasyCorp\Bundle\EasyAdminBundle\Config\Crud;
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController;
use EasyCorp\Bundle\EasyAdminBundle\Config\Action;
use EasyCorp\Bundle\EasyAdminBundle\Config\Actions;
use EasyCorp\Bundle\EasyAdminBundle\Field\IdField;
use EasyCorp\Bundle\EasyAdminBundle\Field\ImageField;
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField;
use EasyCorp\Bundle\EasyAdminBundle\Field\UrlField;
use EasyCorp\Bundle\EasyAdminBundle\Field\AssociationField;
use EasyCorp\Bundle\EasyAdminBundle\Form\Type\FileUploadType;
use Doctrine\ORM\EntityManagerInterface;
class FormulairePhotosCrudController extends AbstractCrudController
{
public static function getEntityFqcn(): string
{
return FormulairePhotos::class;
}
public function configureCrud(Crud $crud): Crud
{
return $crud->setEntityLabelInSingular('Formulaire client')->setEntityLabelInPlural('Formulaires clients');
}
public function configureFields(string $pageName): iterable
{
return [
IdField::new('id')->onlyOnIndex(),
AssociationField::new('formulaireEtapes')->setFormTypeOption('choice_label', 'Libelle_formulaire_etapes'),
ImageField::new('chemin_formulaire_photos', 'Photo des étapes')->setFormType(FileUploadType::class)->setBasePath('images/formulaires_clients')->setUploadDir('public/images/formulaires_clients')->setColumns(6)->setFormTypeOptions(['attr' => ['accept' => 'application/jpg']])->setUploadedFileNamePattern('[name].[extension]')/*->setFormTypeOption('upload_delete', function(File $file) {})*/,
];
}
}
Lorsqu'on upload une image, je souhaiterais que cette dernière soit redimensionnée et surtout converti au format .webp.
Cela est-il faisable ? Si oui, pouvez-vous m'indiquer comment puis-je obtenir le résultat souhaité ?
Merci par avance pour votre aide !
Bonjour,
J'ai résolu mon problème et pour ceux que cela intéresse, voici les grandes lignes :