2017-01-30 7 views
0

이 기사 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의 프록시를 가지고 있지만, persistflush 작업 후 나는 테이블에 id 새로운 새 레코드와 프록시를 참조 작동 persistflush.

아무도 아이디어가 잘못 됐나요?

답변