【问题标题】:How to upload image with SonataMediaBundle如何使用 SonataMediaBundle 上传图像
【发布时间】:2014-07-04 09:16:49
【问题描述】:

我是从SonataMediaBundle开始的,想上传图片时遇到了一些问题(遗憾的是文档不是很清楚)

我是这样处理的:

我想在创建新闻表单中上传图片,所以:

在新闻实体中:

/**
 * @ORM\ManyToOne(targetEntity="\Application\Sonata\MediaBundle\Entity\Media", cascade={"all"})
 * @ORM\JoinColumn(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 对象为 Null (var_dump)

谢谢!

【问题讨论】:

    标签: symfony sonata-admin symfony-sonata


    【解决方案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 的关键

    【讨论】:

      猜你喜欢
      • 2012-07-16
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      • 2016-01-15
      • 2014-09-06
      • 2016-08-20
      • 2014-03-30
      • 1970-01-01
      相关资源
      最近更新 更多