Bonjour,
Je souhaite pouvoir afficher le chemin et la photo d'un article quand j'édite ce dernier. Je me suis donc inspiré de la doc symfony "Form Type Extension" https://symfony.com/doc/3.4/form/cre...extension.html
Ce que je fais
J'ai un form ArticlesType (lié a l'entité article) qui utilise la classe MediaType::class pour definir le formulaire Mediatype.php specifique aux photos
//dans ArticlesType.php
-
>add('image', MediaType::class)
//dans Mediatype.php
1 2 3 4
| ->add('image', FileType::class, array('data_class' => null,
'required' => false,
'label' => 'Illustration de l\'article',
'image_property' => 'AssetPath') |
image_property' => 'AssetPath' me permet de "lier" mon formulaire media à ImageTypeExtension où je fais un buildView afin de retrouver l'URL des photos
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public function buildView(FormView $view, FormInterface $form, array $options)
{
// this will be whatever class/entity is bound to the form (e.g. Media)
$parentData = $form->getParent()->getData();
$imageUrl = null;
if (null !== $parentData) {
$accessor = PropertyAccess::createPropertyAccessor();
$imageUrl = $accessor->getValue($parentData, 'AssetPath');
//dump($imageUrl);
die(var_dump($imageUrl));
}
// sets an "image_url" variable that will be available when rendering this field
$view->vars['image_url'] = $imageUrl; |
Ce que je veux
$imageUrl renvoie bien l'URL, mais du fait de l'imbrication de Mediatype dans ArticlesType, $view->vars['image_url'] n'envoie pas cette variable à la vue.
Ce que j'obtiens
dans la vue,
1 2 3 4
|
{% if image_url is not null %}
<img src="{{ asset(image_url) }}"/>
{% endif %} |
renvoie une erreur puisque twig ne trouve pas image_url.
Comment faire passer $imageUrl à la vue ?
Partager