Magento中save()操作机制(_beforesave,_aftersave)

每个save执行时都会要执行几步操作,如下:

public function save()
_beforesave()
	_resource{
        _beforesave()
            save
        _aftersave()
    }
_aftersave
public function save()
{
    ...
    try {
        $this->_beforeSave();
        if ($this->_dataSaveAllowed) {
            $this->_getResource()->save($this);
            $this->_afterSave();
        }
    }
    ...
}

protected function _beforeSave(Mage_Core_Model_Abstract $object)
{
    if (!$object->getId()) {
        $object->setCreatedAt(Mage::getSingleton('core/date')->gmtDate());
    }
    return $this;
}

protected function _afterSave(Mage_Core_Model_Abstract $object)
{
    $adapter = $this->_getWriteAdapter();
 	......
    return $this;
}

这里的resource里面的_beforesave()里面可以看作是save的预处理,在这里可以加入一些只要执行就要自动保存的数据作为预处理,例如:

if (!$object->getId()) {
    $object->setCreatedAt(Mage::getSingleton('core/date')->gmtDate());
}

这里就是在预处理created_at字段直接进行保存,_beforesave()之后执行save操作,然后执行_aftrsave()操作,这里是对一些数据(我理解的是非主表的数据表)中的一些数据进行保存。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值