CakePHP 2.0.4 Model->createの処理
Posted in CakePHP on 12月 14th, 2011 by Site Administrator`record_status` int(11) NOT NULL DEFAULT ‘0’,
のようにDBのカラムの初期値にDEFAULTを設定している場合、
Model->create()を実行した時点でModel->dataにrecord_status=0が設定されます。
結果として、もしも「record_status」のフィールドがPOSTされなかった場合でも
saveした際にrecord_status=0が保存されます。
実はupdate処理で、一部間違ってModel->createを実行している個所があったのですが、
なぜかPOSTしていないフィールドなのに初期値でデータが上書きされるということが発生して
いました。
Model->createはinsertの際のみ実行すべきなのでそもそものミスだったわけですが、
insertの際におまじないのようにしているcreateが実はこんなことをしているということで
参考までに。