0

任何人都有任何想法......这个函数被调用了大约 15 个地方,每次它遇到它似乎都是问题,它通过函数但序列化长度为:

echo "序列化长度:" . strlen(序列化($this->_items));

出来是大约8000长。

 public function getItemsCollection($useCache = true)
    {
      if (is_null($this->_items)) {
            $this->_items = Mage::getModel('sales/quote_item')->getCollection()
                            ->addFieldToFilter("quote_id", $this->getId())
            ;
           #$this->_items->setQuote($this);
        } 
        echo "Length serialized: " . strlen(serialize($this->_items));
        exit;


       return $this->_items;

    } 
4

2 回答 2

1

在我看来,项目对象中有一些奇怪的东西。就像它的一个成员有一个大物体绑在它上面。我知道我在将地址保存到会话对象时遇到了问题。也许您在此之外正在做一些事情,即附加一个出错的大对象。您可以执行以下操作来获取原始 sql 并在您的数据库上运行它以查看返回的内容

public function getItemsCollection($useCache = true)
    {
      if (is_null($this->_items)) {
            $this->_items = Mage::getModel('sales/quote_item')->getCollection()
                            ->addFieldToFilter("quote_id", $this->getId())
            ;
           #$this->_items->setQuote($this);
        } 
        echo (String)Mage::getModel('sales/quote_item')->getCollection()->getSelect();
        exit;


       return $this->_items;

    } 
于 2011-08-03T18:41:42.127 回答
0

我用 Magento 编码时遇到了同样的问题,它与递归有关,请尝试使用 var_dump() 而不是 echo()

于 2011-08-03T19:03:12.377 回答