[cakephp] saveできない時のチェックリスト
save されない、
update できない、
などなど、「あれ?」という時にチェックする一覧を作ってみました。
1、$this->data に値が入っていない
初歩ですね。var_dumpでチェック。
2、validate に弾かれている。
save の第2引数に falseを入れるとvalidateを無視できるらしいので、試しにやってみる。
$this->save($data, false)
3、whitelist が設定されている。
設定されているフィールドだけ更新するというものらしい。
これが設定されている場合、入っていないと更新されない。
4、キャッシュが残っている。
フィールド名を変えたりした場合なんかは特に、キャッシュを削除しないと更新されない。
/tmp/cache/models
この中身を消す。
5、saveで上書きしている。
一つの処理に二つ以上のsaveがあって、後のsaveで前のsaveを上書きしている。
saveの第3引数に、更新するフィールドを明示することで回避できる。
$this->id = $id; $fields = array('name'); $this->save($data, false, $fields);
今回は5にやられた。
まあ、コードは見通しよく、綺麗に書きなさい。
っていう事なんだろうけどさ!
6、trueとfalseが逆
try{ if($this->save($data)) throw new Exception(); }catch(){}
try文でよくこんな書き方してませんか?
ビックリマーク付けないとエラーになりますよ。
正解
if(!$this->save($data)) throw new Exception();
2019年2月13日更新
4年経ってもまだsaveで躓くんです。
前の記事: 日本国内限定のe164変換関数(php)
次の記事: 神田明神と「天野屋」に行ってきたよ。
2015/04/01 | 開発記録
前の記事: 日本国内限定のe164変換関数(php)
次の記事: 神田明神と「天野屋」に行ってきたよ。
コメント/トラックバック
トラックバック用URL:
この投稿のコメント・トラックバックRSS