CakePHP その7 - createdとmodified - [CakePHP]
CakePHPの便利機能として、DBにcreatedというフィールドをつくっておけば、データの挿入の日時を記入してくれるし、modifiedというフィールドがあれば、更新した時に自動的に更新した日時をいれてくれる。
ところが、このmodifiedがある時、一部のコントローラーで機能しなくなってしまっていた。
これに気づいたのが、オープンの前日(苦笑)それまでは、何度も確認して問題ないことを確かめていたのに…。
さあ、困った。
自分が使っているのが、1.1.15。一体、何が原因なんだろう?
ネットで検索したら、下記の情報が。
http://griffinm.wordpress.com/2007/05/28/why-created-and-modified-fields-might-not-save/
とりあえず、応急処置として、全ての保存前に
$this->data['User']['modified'] = null;
としたら、modifiedが機能した。
うーん、原因が分かんないのがやだな。
ついでに、コントローラーごとに、この機能をオン/オフする変数が欲しい。
2007-07-24 13:37
nice!(0)
コメント(2)
トラックバック(0)
テーブルの created, modifed は unsigned int で作成されていますか?
もし、そうであれば
save() に渡すパラメータが
array(
"username" => "hoge",
"hoge" => "moge",
)
でしたら、大丈夫ですが、
array(
"username" => "hoge",
0 => "moge",
)
のように配列の添え字がテーブルのカラム名と一致しないのがあればダメになるようです。
cake 2.0.4 なので多少違うかもしれませんが。
by NO NAME (2012-01-17 11:21)
お返事ありがとうございます。
> テーブルの created, modifed は unsigned int で作成されていますか?
そういえば、これ書いていた時(2007当時)は、あんまちゃんとやってなかったかも…。
> のように配列の添え字がテーブルのカラム名と一致しないのがあればダメになるようです。
初めて知りました。近々検証してみます。
Cakeは最近はすっかりご無沙汰しており、完全に浦島太郎状態になってますが。
ご親切に本当にありがとうございました。
こんな古い記事にもコメントがつくなんて、ネットというか、人のありがたみを感じた今日でした。
by sandman (2012-01-17 11:57)