Как загрузить изображение с помощью SonataMediaBundle

#symfony #sonata-admin #symfony-sonata

#symfony #sonata-администратор #symfony-sonata

Вопрос:

Я начал с SonataMediaBundle, и у меня возникли некоторые проблемы, когда я хочу загрузить изображение (к сожалению, документация не совсем понятна)

Я продолжил как :

Я хочу загрузить изображение в форме создания новостей, поэтому :

В новостном объекте :

 /**
 * @ORMManyToOne(targetEntity="ApplicationSonataMediaBundleEntityMedia", cascade={"all"})
 * @ORMJoinColumn(nullable=false)
 */
protected $imageNews;
  

В NewsType я добавляю поле в buildForm :

     public function buildForm(FormBuilderInterface $builder, array $options)
{

    $builder
        ->add('title')
        ->add('summary', 'text', array(
        'required' => false
        ))
        ->add('body', 'textarea', array('attr' => array(
          'class' => 'ckeditor',
        )))
        ->add('imageNews', 'sonata_media_type', array(
            'provider' => 'sonata.media.provider.image',
            'context'  => 'news'
        ));
    //    ->add('categories', 'taxonomy')
        ;
}
  

Мой файл config.yml

 Doctrine :
orm:
    auto_generate_proxy_classes: "%kernel.debug%"
    auto_mapping: true


# SonataMediaBundle
sonata_media:
    default_context: default
    db_driver: doctrine_orm # or doctrine_mongodb, doctrine_phpcr
    contexts:
        default:  # the default context is mandatory
            providers:
                - sonata.media.provider.dailymotion
                - sonata.media.provider.youtube
                - sonata.media.provider.image
                - sonata.media.provider.file

            formats:
                small: { width: 100 , quality: 70}
                big:   { width: 500 , quality: 70}
        news:
            providers:
                - sonata.media.provider.youtube
                - sonata.media.provider.image

            formats:
                small: { width: 150 , quality: 95}
                big:   { width: 500 , quality: 90}

    cdn:
        server:
            path: /uploads/media # http://media.sonata-project.org/

    filesystem:
        local:
            directory:  %kernel.root_dir%/../web/uploads/media
            create:     false
    providers:
        image:
            resizer: sonata.media.resizer.square
  

Мне кажется, я что-то пропустил, не могли бы вы сказать мне, чего не хватает, пожалуйста;
Мне удалось отобразить загруженное, но когда я проверяю форму, я вижу, что объект imageNews равен нулю (var_dump)

Спасибо!

Ответ №1:

Здесь та же проблема, проблема была решена с добавлением этого шаблона формы

 twig:
    debug:            %kernel.debug%
    strict_variables: %kernel.debug%

    form:
        resources:
            # other files
            - 'SonataMediaBundle:Form:media_widgets.html.twig'
  

http://sonata-project.org/bundles/media/2-2/doc/reference/form.html

в этом шаблоне должно быть что-то, что является ключом для make