Les images ne sont pas économisées avec les paramètres ci-dessous
public function configureFields(string $pageName): iterable { return [ ImageField::new('imageFile')->setBasePath('%app.path.product_images%'), ]; }
3 Réponses :
Assurez-vous de modifier au moins 1 champ mappé de doctrine dans votre setter, sinon la doctrine ne doit pas expédier des événements. Voici un exemple de la DOCS:
/** * @ORM\Column(type="datetime") * @var \DateTime */ private $updatedAt; public function setImageFile(File $image = null) { $this->imageFile = $image; // VERY IMPORTANT: // It is required that at least one field changes if you are using Doctrine, // otherwise the event listeners won't be called and the file is lost if ($image) { // if 'updatedAt' is not defined in your entity, use another property $this->updatedAt = new \DateTime('now'); } }
J'ai fait toutes les modifications nécessaires dans l'entité, mais le champ de formulaire dans Docs est configuré dans easy_admin.yaml, mais j'ai son propre fichier CrudController et je ne trouve pas comment configurer ce champ (comme - {Propriété: "ImageFile" , Tapez: 'vich_image'} code>)
Si je décharge ($ ceci) à l'intérieur SetImageFile, je vois -Image: "/ privatif / var / dossiers / 69 / 3TQ1CY1D29QDVNH49F7QGHB80000GP / t / pH pknxx8i" code> avec mauvais chemin, donc j'ai besoin de marquer ce champ comme type vich_image
J'ai upload_destination: '% kernel.project_dir% / public% app.path.prod.product_images%' code> dans vich_uploader.yaml et
app.path.product_images: / téléchargements / images / produits / produits / produits CODE > dans services.YAML
@YuriInikytenko Votre code YAML est un exemple de Easy Admin 2.x, je pense que vous utilisez Easy Admin 3.x, qui n'utilise plus YAML CONFIG.
Vous avez besoin de résoudre le paramètre d'abord.
au lieu de p> essayez p> Plus d'infos sur Obtenir le paramètre ici: P> https://symfony.com/blog/new-in-symfony-4-1-geting-container-paramètres-as-a-service P> P>
Ceci fonctionne pour moi ...
Créez d'abord VICHIMAGEFIELD P>
public function configureFields(string $pageName): iterable { return [ ImageField::new('imagename')->setBasePath($this->getParameter('app.path.product_images'))->onlyOnIndex(), VichImageField::new('imageFile')->hideOnIndex() ]; }