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サイト制作の実績・料金を見る

この記事のシェア数

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

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