doctrine GeneratedValue = NONE一直为Id插入NULL

时间:2016-12-12 17:14:25

标签: php mysql doctrine-orm doctrine symfony

这是我的实体:

cal_{{field.name}}_{{UID}}

现在我正在生成一个新实例

class Foo
{
    /**
     * @var int
     * @ORM\Id
     * @ORM\Column(name="custom_id", type="integer")
     * @ORM\GeneratedValue(strategy="NONE")
     */
    private $customId;

    public function __construct( $customId )
    {
        $this->customId = $customId;
    }

}
  

执行'INSERT INTO table_foo时发生异常   (custom_id,foo,bar)VALUES(?,?,?)'与params [null,null,   空]:

     

SQLSTATE [23000]:完整性约束违规:1048列   'custom_id'不能为空

我知道它不能为NULL,这就是为什么我要设置它。 为什么doctrine会用NULL覆盖值?策略是 NONE 并在构造函数中发生......我在这里缺少什么?

2 个答案:

答案 0 :(得分:0)

有点晚了,但是如果有人要搜索它,则需要使用自定义值生成器(什么也不做,只是将您的内容插入insert语句)

/**
 * @var int
 * @ORM\Id
 * @ORM\Column(name="custom_id", type="integer")
 * @ORM\GeneratedValue(strategy="CUSTOM")
 * @ORM\CustomIdGenerator(class="Doctrine\ORM\Id\AssignedGenerator")
 */
private $customId;

答案 1 :(得分:-1)

删除

@ORM\GeneratedValue(strategy="NONE")