EC-CUBEサイトの開発を行っていると、データベース関連のエラーが多数発生します。1つよくあるのはカラムがNULL可かどうかの意識ができていないケースではないでしょうか。
An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'hogehoge' cannot be null
このようなエラーが発生した場合、NULLが許可されていないカラムに対して、NULLの値を登録しようとしているために発生します。
Doctrineの定義やプログラムのロジックを見直してみてください。
DoctrineのデフォルトはNULL不可
このエラーが起きる原因は、Doctrineの基本的なカラム定義のデフォルトがNULL不可だということです。
例えば下記のようにnullableのオプションが指定されていない場合、カラムはNULL不可になります。
/**
* @var string|null
*
* @ORM\Column(name="name01", type="string", length=255)
*/
private $name01;
NULLを許可するためには次のようにnullable=trueを指定する必要があります。
/**
* @var string|null
*
* @ORM\Column(name="name01", type="string", length=255, nullable=true)
*/
private $name01;
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。