我正在使用一些Sonata捆绑包在Symfony 2.8
应用程序上构建一个新功能。
我的Page.php
实体定义包括以下映射:
/**
* @var ArrayCollection
*
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\Equivalent", cascade={"all"})
* @ORM\JoinTable(name="page_equivalent",
* joinColumns={@ORM\JoinColumn(name="page_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="equivalent_id", referencedColumnName="id", unique=true)}
* )
*/
private $equivalents;
...我的PageAdmin.php
文件的configureFormFields()
功能包含以下内容:
->add('synonyms', CollectionType::class, array('entry_type' => TextType::class, 'allow_add' => true, 'allow_delete' => true))
->add('equivalents', 'sonata_type_collection', array(
'label' => "Equivalents",
'cascade_validation' => true,
'required' => false,
), array(
'edit' => 'inline',
'inline' => 'table',
'targetEntity' => 'AppBundle\Entity\Equivalent',
'admin_code' => 'app.admin.equivalent',
))
...产生消息
无效模式:s5a869f19a6c57_equivalents - 类型: sonata_type_collection - 映射:
我尝试将by_reference
设置为true
和false
,而且这两种设置似乎都没有改变。我还运行doctrine:schema:validate
并发现没有问题。我还验证了我能够在CMS中添加和编辑等效对象。
我该怎么做才能解决这个问题?
答案 0 :(得分:2)
事实证明,此问题涉及未被读取的ORM映射。
(投诉所依据的逻辑是检查几种ORM映射类型中的一种,然后抱怨如果找不到这些类型。)
运行Text="{TemplateBinding Content}"/>
然后重新运行我的app/console doctrine:cache:clear-metadata
命令足以让我的应用程序识别我一直试图实现的多对多关系。这摆脱了胡思乱想的消息。