[CakePHP3.x]cakephp3 タイムスタンプが入らない

カラムにcreatedやmodifiedがあると、自動的にタイムスタンプが入る機能があります。
当初、該当のテーブルには不要だったのですが、後から入れることになったので、カラムに追加して保存処理をやらせてみたのですが、なぜかタイムスタンプが入りません。

まず、Entityの$_accessibleで該当のカラムはアクセス許可にしました。
調べてみたらTableの方も変更が必要で、Timestampビヘイビアの追加をする必要があるようでした。
initialize()メソッドに
$this->addBehavior(‘Timestamp’);
を追加する必要があるみたいです。
モデルファイルをbakeで作った場合,createdとかのカラムがないとこのビヘイビアの記載はされないようです。

ということで記載して再度試してみましたがやっぱりだめ。いや、これでいいはずなんだけど…。

というわけで、いったん既存のファイルをバックアップしてbakeコマンドでモデルファイルを作り直し。
自動生成したファイルと比較したうえで問題がないことを確認して、もう1回やってみたら、なぜか正常に動作しました。

うーん。。。よくわからないけどキャッシュか何かが原因だったのかな…?
一応、キャッシュのクリアも試してんですけどね。

とりあえず、こういうよくわからない不具合があったら、一度bakeで作り直してみるのも手のようです。

タイトルとURLをコピーしました