私は次のエンティティを持っています:
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 列 'email' を null にすることはできません
Doctrine はすべてのエンティティ列を INSERT クエリに追加し、メール列に null 値を設定するためです。
挿入時に設定されていない列をスキップする方法はありますか? または、Doctrine が null 以外の文字列列のデフォルト値として '' (空の文字列) を挿入するようにするには?