【问题标题】:Magento 1.6: Using MySQL datetime fields with resource modelsMagento 1.6:将 MySQL 日期时间字段与资源模型一起使用
【发布时间】:2012-02-10 19:38:30
【问题描述】:

我已经建立了一个数据库表,其中包含一个名为“release_date”的 DATETIME 字段,并且模型/资源模型似乎工作正常。但是,我想检索“release_date”并将其设置为 Zend_Date 对象。而且我还想确保它始终作为 UTC 存储和检索。

您对我如何做到这一点有任何建议,或者可能是一个更好的解决方案?

【问题讨论】:

    标签: php mysql magento


    【解决方案1】:

    您可以在资源模型中处理它,例如:

    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);
        ...
    }
    

    【讨论】:

    • 感谢您的回答,它肯定让我朝着正确的方向前进。但是,在通过其集合检索模型时,似乎没有在资源模型上调用 _afterLoad()。
    • 嗯,你可以在资源收集模型的适当方法中做同样的事情。
    • 我确实找到了集合的 _afterLoadData() 方法,我可以在其中循环遍历所有模型并单独加载它们。这似乎真的很低效。所以我最终在模型上实现了 getReleaseDate() 方法,而不是在资源模型上实现了 _afterLoad()。
    猜你喜欢
    • 2013-02-27
    • 2016-05-07
    • 2019-12-17
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多