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オープンプラットフォーム「EC-CUBE」 EC-CUBEゴールドパートナー EC-CUBEは株式会社イーシーキューブの商標です

EC-CUBEカスタマイズに関するお問い合わせはこちら


    [重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。

    EC-CUBEバージョンアップ