【问题标题】:Could not load type "sonata_media_type": class does not exist无法加载类型“sonata_media_type”:类不存在
【发布时间】:2018-06-21 00:49:15
【问题描述】:

您好,我第一次使用 SonataMedia Bundle,但我无法访问我的实体 Post 的链接; 它给了我#“无法加载类型“sonata_media_type”:类不存在。“# 这是我的代码: Config.php

    sonata_media:
        db_driver: doctrine_orm 
        default_context: default
        contexts:
            Post:
                providers:
                    - sonata.media.provider.image

                formats:
                    small: { width: 100 , quality: 70}
                    big:   { width: 1680 , quality: 100}



**PostType:**


public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('media', 'sonata_media_type', array(
                     'provider' => 'sonata.media.provider.image',
                     'context'  => 'post'
            ));
    }
**My Class Post**



class Post
    {
        /**
         * @var int
         *
         * @ORM\Column(name="id", type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        private $id;


        /**
         * @var \Application\Sonata\MediaBundle\Entity\Media
         * @ORM\ManyToOne(targetEntity="Application\Sonata\MediaBundle\Entity\Media", cascade={"persist"})
         */
        protected $media;


        /**
         * Get id
         *
         * @return int
         */
        public function getId()
        {
            return $this->id;
        }

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

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

    }

我按照此文档进行操作: [https://sonata-project.org/blog/2013/10/11/mediabundle-mediatype-improved][1] 请问如何将我的实体帖子正确链接到实体媒体???

【问题讨论】:

    标签: symfony sonata-media-bundle


    【解决方案1】:

    你可能忘记在你的 formBuilder 中添加这个使用类

    use Sonata\MediaBundle\Form\Type\MediaType;
    

    【讨论】:

      【解决方案2】:

      您应该使用完全限定的类名MediaType::class,就像您在 v.2.8 之后的任何 Symfony 形式中所做的那样:

      **PostType:**
      
      
          public function buildForm(FormBuilderInterface $builder, array $options)
          {
              $builder->add('media', MediaType::class, array(
                           'provider' => 'sonata.media.provider.image',
                           'context'  => 'post'
                  ));
          }
      

      【讨论】:

        猜你喜欢
        • 2020-05-21
        • 1970-01-01
        • 1970-01-01
        • 2012-08-14
        • 2015-08-28
        • 2016-03-05
        • 2014-08-09
        • 2015-04-16
        • 2010-09-08
        相关资源
        最近更新 更多