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/create_form_type_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
->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
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,
{% 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 ?