0

我目前正在使用 Sonata Admin。我有一个链接到奏鸣曲媒体捆绑库实体的博客实体。

我用画廊 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关系正在创建唯一性约束。

ManyToOne替换OneToOne修复了它:

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