NTTドコモ様_dカーシェア
NTTドコモ様_dカーシェア
2008.07.10

CakePHPのModelのcreate

づや

モデルにあるcreateメソッド。

if($this->Model->create($this->data) && $this->Model->validates()){
}

こんな感じにいっつもコントローラーで使ってたんだけど、
createした時に、引数の配列になかったデータはDBのデフォルト値を勝手にいれてくれるんだね。

その処理では変更しないカラムが、勝手にデフォルト値に戻っててびっくりした。

引数にnullかfalseを渡せば、デフォルト値は入れないみたい。

$this->BaseInfo->create(false);
if($this->Model->set($this->data) && $this->Model->validates()){
}

でもこう書くなら始めからsetだけでいいようなきもする。

if($this->Model->set($this->data) && $this->Model->validates()){
}

validationErrorsとかidを初期化したい時はcreateしなきゃいけないのかな。

なんとなく使ってたけど、createをちゃんと調べないといかんなこれは。