0

我正在尝试在我的 Address 对象中使用 setData。这是代码:

//code inside another class
$this->getAddress()->setData('abc', 'abc')->collectShippingRates()->save();

class Mage_Sales_Model_Quote_Address extends Mage_Customer_Model_Address_Abstract
{
...
    public function collectShippingRates()
    {
        ...

        $found = $this->requestShippingRates();
        ...

        return $this;
    }
    public function requestShippingRates(Mage_Sales_Model_Quote_Item_Abstract $item = null)
    {
        //I knkow it's getting here, because when I echo 'blablabla', it works.
        //When I use $this->setData('abc', 'abc') here, the code bellow print 'abc'
        //The problem is when I use setData outside the class
        echo $this->getData('abc');exit; //prints nothing
        ...
    }
...
}

如您所见,我在 Address 模型中设置了数据,但在类 getData 内部什么也不返回。
有人可以解释发生了什么吗?
当我尝试使用 Mage::register 时,它也不起作用。

4

1 回答 1

1

可能的探索途径。

  1. 您的调用getAddress没有返回Mage_Sales_Model_Quote_Address对象,或者返回的是地址对象的不同实例。

  2. 您的调用setData('abc', 'abc')发生在 Magento 的代码执行中,而不是第一次调用requestShippingRates.

  3. 您调用getAddress和执行之间的代码requestShippingRates是重新实例化或初始化地址对象。

根据您对 的评论Mage::register,我的钱排在第二位。

于 2012-12-28T20:17:16.380 回答