cakephp1.2のModel->readは$this->dataを上書きする

cakephp1.2でファイルのアップロード処理を書いていたんだけど、新しくアップロードした時に古い画像ファイルを削除したいということで、Model->saveする前にModel->readで古いレコードを呼び出して、画像ファイル名を取得しようとしたら、ハマった。

Model->readは、$this->dataを上書きしてしまうので、新しくアップしたファイルの情報が削除されてしまう。
Model->readってそもそも公式マニュアルに載っていないし、非推奨なんだろうか?
その割にはbakeしたら出てきますが・・・。

こういう場合はfindで呼んであげれば良い。

- $old_row = $this->read(null, $this->id);
+ $old_row = $this->find('first', array(
+     'conditions' => array('Model.id' => $this->id),
+ ));

そんだけー。

コメント

アーカイブ

2012

  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
  • 07
  • 08
  • 09
  • 10
  • 11
  • 12

2011

2010

2009

2008

2007

コンタクト

longkey1[at]gmail[dot]com