ORMモデルの中で
1 2 3 4 5 6 7 8 9 10 |
protected static $_observers = array( 'Orm\Observer_CreatedAt' => array( 'events' => array('before_insert'), 'mysql_timestamp' => false, ), 'Orm\Observer_UpdatedAt' => array( 'events' => array('before_save'), 'mysql_timestamp' => false, ), ); |
という設定をして追加日、更新日を自動設定していることが多いと思いますが、これだと追加日(created_at)を特定の日にしようとしても自動的に追加の日になってしまいます。
あるコントローラーの中だけobserverを解除して日時を指定したい場合は次のようにします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
class Controller_Test extends Controller_Template { public function action_test(){ $discovery = \Model_Discovery::forge(array( 'user_id' => 1, 'cache_id' => 1, 'created_at' => strtotime('2016-01-17 07:00:00') )); //var_dump($discovery->observers()); // observer一覧を表示 $discovery->unregister_observer('Orm\Observer_CreatedAt'); // observerの削除 //var_dump($discovery->observers()); // observerが削除されていることの確認 $discovery->save(); } } |