이 기사 http://symfony.com/doc/current/cmf/bundles/seo/seo_aware.html에 따라 SEO 데이터를 본사에 추가합니다. Doctrine과 SymfonySeoBundle의 중복 OneToOne 관계
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;
}
내가 Provider
개체를 편집 할 SonataAdmin를 사용하고 내가 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
입니다.
내가 디버그 업데이트 프로세스를했습니다 나는 존재 id
와 $seoMetadata
속성 SeoMetadata
의 프록시를 가지고 있지만, persist
및 flush
작업 후 나는 테이블에 id
새로운 새 레코드와 프록시를 참조 작동 persist
전 flush
.
아무도 아이디어가 잘못 됐나요?