0

現在、Sonata Admin を使用しています。sonata-media-bundle ギャラリー エンティティにリンクするブログ エンティティがあります。

ギャラリー G1 を使用してブログ オブジェクト B1 を作成しました。これで結構です

次に、同じギャラリー G1 を使用してブログ オブジェクト B2 を作成しようとしました。重複によるエラー。

ブログエンティティ

/**
 * Blog
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="ACME\BlogBundle\Entity\Repository\BlogRepository")
 * @ORM\HasLifecycleCallbacks
 */
class Blog
{
    ...

    /**
     *
     * @ORM\OneToOne(targetEntity="Application\Sonata\MediaBundle\Entity\Gallery", orphanRemoval=true)
     */
    private $images;

    ...
}

私の管理者で

/**
 * @param \Sonata\AdminBundle\Form\FormMapper $formMapper
 *
 * @return void
 */
protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
        ->with('General')
            ->add('title', null, array('required' => true))
            ->add('author', null, array('required' => true))
            ->add('blog', null, array('required' => true))
            ->add('taxonomy', null, array('required' => true))
        ->end()
        ->with('Images')
            ->add('images', 'sonata_type_model', array('multiple' => false, 'required' => false))
        ->end()
        ->with('System Information', array('collapsed' => true))
            ->add('created')
            ->add('updated')
            ->add('published')
        ->end()
    ;
}

既存の Gallery オブジェクトを再利用しようとすると、次のエラーが発生する理由を説明できる人はいますか?

整合性制約違反: 1062 キー 'UNIQ_6027FE7DD44F05E5' の重複エントリ '1'

4

1 に答える 1

0

わかりました、理由がわかりました。

OneToOne関係は単一性制約を作成しています

OneToOneManyToOneに置き換えると、次のように修正されました。

* @ORM\ManyToOne(targetEntity="Application\Sonata\MediaBundle\Entity\Gallery")
于 2015-05-06T16:07:36.577 に答える