CakePHPで「SQLSTATE[HY000]: General error: 1364 Field ‘xxx’ doesn’t have a default value」の対処法
482 回閲覧されました
みなさんこんにちは、jonioです。
ある内容を実装している時に「SQLSTATE[HY000]: General error: 1364 Field ‘department_id’ doesn’t have a default value」のエラーが表示されました。
こうすればエラーを外せるかもしれないという可能性を解説します。
$_accessibleの設定
私は個人でLaravelを扱いますがフォームの値をテーブルに登録する時にモデルの中の「$fillable」の設定を忘れて登録ができないのを経験しています。
記述はどう考えても正しいので「変だな〜」と思っていたのですがLaravelの「$fillable」にあたるのがCakePHPだと「CakePHPのプロジェクト > src > Model > Entity > 〜.php」の中にある「$_accessible」の項目です。
今回は「department_id」カラムでエラーが出ていたので$_accesibleを下記に変更しました。
protected $_accessible = [
'name' => true,
'email' => true,
'password' => true,
'created' => true,
'modified' => true,
'company_id' => true,
'department_id' => true //この行を追加
];
これでエラーがなくなりました。