Sonata media: Pas de vignette à l'édition

Soumis par GoZ le dim 27/04/2014 - 10:07

Sonata media: Pas de vignette à l'édition

Après avoir activé et configuré sonata media, couplé à sonata admin, j'affiche bien un champ d'upload d'image via le provider sonata.media.provider.image
Dans le fichier MonentityAdmin.php

protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper->add('media', 'sonata_media_type', array(
                    'provider' => 'sonata.media.provider.image',
                    'context'  => 'default',
                ))
    ;
}

Lors de la soumission de mon formulaire, l'upload se fait bien et l'image est bien liée à mon entité
Monentity.php :

use Application\Sonata\MediaBundle\Entity\Media as Media;

/**
 * Monentity Entity
 */
class Monentity
{
    // ...

    protected $media;

    /**
     * @param MediaInterface $media
     */
    public function setMedia(Media $media)
    {
        $this->media = $media;
    }

    /**
     * @return MediaInterface
     */
    public function getMedia()
    {
        return $this->media;
    }
}

Et mon fichier Monentity.orm.yml

# ...
    oneToOne:
        media:
            targetEntity: Application\Sonata\MediaBundle\Entity\Media
            joinColumn:
                name: media_id
                referencedColumnName: id
            cascade: [ "persist", "refresh", "remove" ]
            fetch: LAZY

Seulement à l'édition de mon entité existante, il ne m'affiche pas l'image de l'entité.

Pourquoi ? J'ai simplement oublié d'ajouter à la configuration d'utiliser les templates des widgets de media
Dans app/config/config.yml :

# Twig Configuration
twig:
    debug:            "%kernel.debug%"
    strict_variables: "%kernel.debug%"
    form:
        resources:
            # other files
            - 'SonataMediaBundle:Form:media_widgets.html.twig'

Sonata Media s'affiche désormais correctement dans mon formulaire.