这是我的实体:
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 并在构造函数中发生......我在这里缺少什么?
答案 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")