无法加载类型“sonata_media_type”:类不存在
Posted
技术标签:
【中文标题】无法加载类型“sonata_media_type”:类不存在【英文标题】:Could not load type "sonata_media_type": class does not exist 【发布时间】:2018-06-21 00:49:15 【问题描述】:您好,我第一次使用 SonataMedia Bundle,但我无法访问我的实体 Post 的链接; 它给了我#“。“# 这是我的代码: 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] 请问如何将我的实体帖子正确链接到实体媒体???
【问题讨论】:
【参考方案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'
));
【讨论】:
以上是关于无法加载类型“sonata_media_type”:类不存在的主要内容,如果未能解决你的问题,请参考以下文章
通过 sonata_type_collection 字段将 sonata_media_type 用作 1:N 时出现 500 错误