2017-01-30 8 views
0

私はこの記事の後に私のエンティティにSEOデータを追加しますhttp://symfony.com/doc/current/cmf/bundles/seo/seo_aware.htmlDoctrineと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プロパティのための特別なフォームタイプを使用する - 問題は次である

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() 
    ; 
} 

http://symfony.com/doc/current/cmf/bundles/seo/seo_aware.html#form-typeSeoMetadataType - 毎回私はProviderエンティティを編集し、私は新しいレコードを取得SeoMetadataです。

私はデバッグ更新処理をしたと私は存在していたid$seoMetadata財産でSeoMetadataのプロキシを持っていますが、persistflush操作の後、私はテーブル内のid新しい、新しいレコードとプロキシを参照してください操作persist前とflush

誰も何が間違っていますか?

答えて

0

いくつかのORMの例がありますが、atmを完全にサポートしていません。しかし、ここでいくつかのコードを追加するだけで、永続性の問題を再現することができます:https://github.com/symfony-cmf/seo-bundle/blob/master/tests/Functional/Doctrine/Orm/SeoMetadataTest.php単にPRをして、私はそれを修正しようとします。しかし、問題はソナタ形式であるか、形式である可能性もあります。

関連する問題