我使用一些奏鸣曲捆绑包在Symfony 2.8
应用程序上构建新功能。
我的Page.php
实体定义包括以下映射:
/**
* @var ArrayCollection
*
* @ORMManyToMany(targetEntity="AppBundleEntityEquivalent", cascade={"all"})
* @ORMJoinTable(name="page_equivalent",
* joinColumns={@ORMJoinColumn(name="page_id", referencedColumnName="id")},
* inverseJoinColumns={@ORMJoinColumn(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' => 'AppBundleEntityEquivalent',
'admin_code' => 'app.admin.equivalent',
))
...产生消息
无效模式:S5A869F19A6C57_Equivalents-类型: sonata_type_collection-映射:
我尝试将by_reference
设置为true
和false
,但似乎都不会更改任何设置。我还运行了doctrine:schema:validate
,发现没有问题。我还验证了我能够在CMS中添加和编辑等效对象。
我该怎么办?
事实证明,这个问题涉及未被阅读的ORM映射。
(投诉所在的逻辑正在检查几种ORM映射类型之一,然后抱怨是否没有找到这些类型。(
运行app/console doctrine:cache:clear-metadata
,然后重新运行我的doctrine:schema:update --force
命令足以获取我的应用程序,以识别我一直在尝试建立的许多关系。这摆脱了胡思乱想的信息。