我在本文http://symfony.com/doc/current/cmf/bundles/seo/seo_aware.html之后向我的实体添加了SEO数据。
class Provider implements SeoAwareInterface
{
/**
* @var SeoMetadataInterface
*
* @ORM\OneToOne(targetEntity="Symfony\Cmf\Bundle\SeoBundle\Model\SeoMetadata", cascade={"persist","remove"})
* @ORM\JoinColumn(name="seo_metadata_id", referencedColumnName="id")
*/
protected $seoMetadata;
}
我使用SonataAdmin编辑Provider
实体,我使用seoMetadata
属性的特殊表单类型 - SeoMetadataType
(http://symfony.com/doc/current/cmf/bundles/seo/seo_aware.html#form-type)
protected function configureFormFields(FormMapper $form)
{
$form
// some entity related fields
->with('form.provider.seo_group_title', [
'class' => 'col-md-4',
])
->add('seoMetadata', SeoMetadataType::class, [], [
'generic_metadata' => false,
])
->end()
;
}
接下来是问题 - 每当我编辑Provider
实体时,我都会获得SeoMetadata
的新记录。
我已调试更新流程,在persist
和flush
操作之前,我在SeoMetadata
属性$seoMetadata
的代理已存在id
,但是在persist
和flush
操作之后,我会看到新的id
代理和表中的新记录。
有人知道什么是错的吗?
答案 0 :(得分:0)
我们确实有一些ORM示例,但不完全支持它。但是,你可以通过在这里添加一些代码来重现你的持久性问题:https://github.com/symfony-cmf/seo-bundle/blob/master/tests/Functional/Doctrine/Orm/SeoMetadataTest.php只需做一个公关,我会尝试修复它。但也可能是,问题出现在奏鸣曲或表格中。