php - Magento - "created_at"字段不会与其余数据一起自动设置

标签 php date magento magento-1.9

我创建了一个模块,它将一些数据保存到自定义表中。两个表中都有“created_at”和“updated_at”字段。但是,当我将数据保存到任何表中时,如果这些表的“created_at”字段不会自动设置。

这是我的代码: Sql脚本:

->addColumn(
    'created_at', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, array('nullable' => true,), 'Created At'
)
->addColumn(
    'updated_at', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, array('nullable' => true,), 'Updated At'
)

模型.php

class my_Module extends Mage_Core_Model_Abstract
{
        public function addMyList($customerId, $name)
        {
            $this->setData(
                array(
                    'b2b_customer_id' => $customerId,
                    'name' => $name,
                )
            );
            $this->save();
            return;
        }
}

我查看了其他帖子,但大多数都将这个“created_at”与函数中的其余数据一起归档。这并不是我想要的,因为我认为 Magento 应该自己处理它。

但是如果我的想法错误或者代码有错误,请告诉我。

最佳答案

嗯,Magento 在某些方面非常特别。自动设置 created_atupdated_at 是一个好主意 - 大多数现代框架,例如。 e. Laravel,支持。

Magento 不会自动设置 created_atupdated_at

有一个 Mage_Sales_Model_Resource_Abstract::_prepareDataForSave() 方法 - 因此,如果您有一个资源模型并且它扩展了此类,您可以/应该调用此方法来获取您的 created_atupdated_at 设置正确。

/**
 * Prepare data for save
 *
 * @param Mage_Core_Model_Abstract $object
 * @return array
 */
protected function _prepareDataForSave(Mage_Core_Model_Abstract $object)
{
    $currentTime = Varien_Date::now();
    if ((!$object->getId() || $object->isObjectNew()) && !$object->getCreatedAt()) {
        $object->setCreatedAt($currentTime);
    }
    $object->setUpdatedAt($currentTime);
    $data = parent::_prepareDataForSave($object);
    return $data;
}

如果需要,您仍然可以手动设置。

关于php - Magento - "created_at"字段不会与其余数据一起自动设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37253440/

相关文章:

ajax - 在自定义 Controller + Action 中使用 Magento 内置消息系统

jquery - Safari 浏览器中的 Magic Zoom Plus 问题

apache-spark - 在 Spark 中将日期转换为 ISO 周日期

php - Magento fatal error : Call to a member function save() on a non-object

javascript - PHP回显纯文本

php - 更新 MySQLI 中的参数

Javascript 函数和意外 'NAN'

python - python中的日期转换

javascript foreach select 循环选择值

PHP - 将所有错误转换为异常 - 好还是坏?