如何在ORM Doctrine2中手动设置/保留主键

时间:2015-06-01 18:57:25

标签: symfony orm doctrine-orm

在我的表中,主键是ISBN,因此我需要在表单中添加新书时手动设置它。添加带有ISBN 123的新图书时,会导致数据库中出现空白的ISBN。

实体:

/**
 * @var string
 *
 * @ORM\Column(name="isbn", type="string", length=45)
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
private $isbn;

public function setIsbn($isbn)
{
    $this->isbn = $isbn;
    return $this;
} 

public function getIsbn()
{
    return $this->isbn;
}

表格类型:

    $builder
        ->add('isbn')

控制器:

    if ($form->isValid()) {
        $em = $this->getDoctrine()->getManager();
        $em->persist($entity);
        $em->flush();

添加ISBN 123

的新书时

enter image description here

导致数据库中的空白ISBN(但如果重要,则不为空)

enter image description here

1 个答案:

答案 0 :(得分:3)

您不需要@ORM\GeneratedValue(strategy="IDENTITY")注释,它用于生成ID,您可以自己提供。