3

空白のフィールドを含むフォームを送信すると、エラーが発生しますSQLSTATE[23000]: Integrity constraint violation: 1048 Column 'image' cannot be null。私が見つけた唯一の修正方法は、エンティティ ファイルでデフォルト値を作成することです。

 * @ORM\Column(type="string", length=100)
 */
protected $image="";

セッターを次のように変更します。

public function setImage($image){
 if(!isset($image)) {
//its really empty but it works only in this way     
}
     else {
    $this->image = $image;
    }  

とてもスターンジだと思います...これについて何か説明はありますか?それを行う別の方法はありますか?}

4

2 に答える 2

7

フィールドimageが必須でない場合は、 nullableDoctrine がそれを認識し、列を null 許容として設定するように設定できます。

この方法では、フィールドが null になる可能性があるため、制約に違反することはありません。Doctrine アノテーションでフィールドを null 可能にするには、次のように定義を追加するだけnullable = trueですORM\Column:

@ORM\Column(type="string", length=100, nullable=true)

デフォルトでは、すべての列はnullable=false、null 値を永続化しようとすると、定数検証例外をスローするようになっています。

よろしく、
マット

于 2012-04-23T20:29:34.770 に答える