CakePHPのModelのcreate

Kazuya Takato

Kazuya Takato

モデルにある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をちゃんと調べないといかんなこれは。

LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。

Webサイト制作の実績・料金を見る

この記事のシェア数

Kazuya Takato
Kazuya Takato 取締役 COO 兼 CTO / DX事業本部長 / 高遠 和也

1983年生まれ。SIerとしてのキャリアをスタートし、JavaやC#を中心に多岐にわたる開発プロジェクトにエンジニアとして参加。その経験を活かし、LIGを創業。バックエンドおよびフロントエンドエンジニアとしての深い知識と経験をもとに、多様なプロジェクトに従事。現在は、取締役COO兼CTO、DX事業本部長として、社内の体制やルールの最適化、AI技術の推進など、経営戦略の一翼を担う。

このメンバーの記事をもっと読む
デザイン力×グローバルな開発体制でDXをトータル支援
お問い合わせ 会社概要DL