2012-02-10 6 views
4

"release_date"という名前のDATETIMEフィールドを持つデータベーステーブルを設定しました。モデル/リソースモデルは正常に動作しているようです。しかし、私はZend_Dateオブジェクトとして "release_date"を取得して設定したいと思います。また、常にUTCとして保存され、取得されていることを確認したい。Magento 1.6:リソースモデルでMySQLのdatetimeフィールドを使用する

私はこれをやり遂げる方法や、もっと良い解決方法を提案していますか?あなたは、あなたのリソースモデルでのようなもの、それを処理することができます

答えて

3

:あなたの答えのための

protected function _beforeSave(Mage_Core_Model_Abstract $object) 
{ 
    ... 
    $date = $object->getReleaseDate(); 
    // convert from your server/client timezone to UTC if needed 
    $object->setReleaseDate($this->formatDate($date)); 
    ... 
} 

protected function _afterLoad(Mage_Core_Model_Abstract $object) 
{ 
    ... 
    $date = new Zend_Date($object->getReleaseDate()); 
    // convert to your server/client timezone from UTC if needed 
    $object->setReleaseDate($date); 
    ... 
} 
+0

おかげで、それは確かに正しい方向に私を持っています。ただし、コレクションを介してモデルを取得する場合、_afterLoad()はリソース・モデル上で呼び出されないようです。 – Vitamin

+0

ええと、リソース収集モデルの適切な方法で同じことができます。 – Zyava

+1

コレクションの_afterLoadData()メソッドを見つけました。すべてのモデルをループして個別に読み込むことができます。これは本当に非効率なようでした。だから私は、リソースモデルの_afterLoad()ではなく、モデル上でgetReleaseDate()メソッドを実装することになりました。 – Vitamin

関連する問題