以下のサイトを参考にご質問します。
http://to-developer.com/blog/?p=132
以下のソースをモデルに書けば、レコードを追加した時にcreated_atに日付が入るはずです。
lang
1protected static $_observers = array( 2 'Orm\Observer_CreatedAt' => array( 3 'events' => array( 4 'before_insert'), 5 'mysql_timestamp' => true, 6 'property' => 'created_at', 7 ), 8);
では、created_atに入れた値を、updated_atへも入れたい場合にはどうするのでしょうか?
property=>created_atの箇所にupdated_atも一緒に入れればいいのかと思ったのですが、残念ながら配列で指定は出来ませんでした。
どなたか方法をご存じないでしょうか。
追記1:
言葉が足りませんでした。質問したいのは、insertした時にupdated_atにcreated_atと同じ値を入れたいのです。
updateした時ではありません。
以下のようにすれば、update時にupdated_atに値は入ります。しかしinsert時には入らないのです。
lang
1 protected static $_observers = array( 2 'Orm\Observer_CreatedAt' => array( 3 'events' => array( 4 'before_insert'), 5 'mysql_timestamp' => true, 6 'property' => 'created_at', 7 ), 8 'Orm\Observer_UpdatedAt' => array( 9 'events' => array( 10 'before_update'), 11 'mysql_timestamp' => true, 12 'property' => 'updated_at', 13 ), 14 );
追記2:
Observer_UpdatedAtにbefore_saveイベントを設定すれば、insert時に入力出来るかと思ったのですが、無理でした。
以下のソースで動作しませんでした。もう少し調べて、無理そうなら諦めようと思います。
lang
1 /** 2 * @var array $_observers 時間設定(自動更新) 3 */ 4 protected static $_observers = array( 5 'Orm\Observer_CreatedAt' => array( 6 'events' => array( 7 'before_insert'), 8 'mysql_timestamp' => true, 9 'property' => 'created_at', 10 ), 11 'Orm\Observer_UpdatedAt' => array( 12 'events' => array( 13 'before_save'), 14 'mysql_timestamp' => true, 15 'property' => 'updated_at', 16 ), 17 'Orm\Observer_UpdatedAt' => array( 18 'events' => array( 19 'before_update'), 20 'mysql_timestamp' => true, 21 'property' => 'updated_at', 22 ), 23 );
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/07/01 04:52
2015/07/01 04:55