我有以下实体:
class Employee {
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $employeeId;
/**
* @ORM\Column(type="string", length=45, unique=true)
*/
protected $username;
/**
* @ORM\Column(type="string", length=255, nullable=false)
*/
protected $email;
我正在运行以下代码:
$employee = new Employee();
$employee->setUsername('test');
$em = $this->getDoctrine()->getManager();
$em->persist($employee);
$em->flush();
如您所见,我没有为电子邮件列设置值。
但坚持我得到:
SQLSTATE [23000]:违反完整性约束:1048 列“电子邮件”不能为空
因为 Doctrine 将所有实体列添加到 INSERT 查询并为电子邮件列设置空值。
有没有办法跳过插入时未设置的列?或者让Doctrine插入''(空字符串)作为非空字符串列的默认值?