スポンサードリンク

CakePHP
CakePHP

Postされたデータをsaveメソッドで

DBに保存するのですが、

今回ハマったのでメモしておきます。

スポンサードリンク

saveメソッドでデータが保存できない

フォームからデータを入力して

Postしたら保存ができない・・・

validateErrorsで確認すると

バリデーションエラーが出てました。

しかし、Postするフォームにはその項目がない・・・

一つのカラムを更新するのに

他の複数のカラムのバリデーションが影響したためでした。

かといって他のバリデーションのルールは変えられないし

そんな感じで詰まってました。

解決方法

解決方法は簡単でした。

saveメソッド時にバリデーションを解除すればよかったです。

save($this->request->data(), false)

第2引数にfalseを付けるだけでよかったんです。

falseを付けるとバリデーションが解除されます。

本当は個別にバリデーションを解除したりするのがいいのでしょうが

今回は別にいらなかったのでfalseで解除しました。

個別にバリデーションを解除する方法

スポンサードリンク