Magento - пустая страница корзины, вызванная следующей функцией (сбой приложения)

У кого-нибудь есть какие-то идеи... есть примерно 15 мест, где вызывается эта функция, каждый раз, когда она срабатывает, кажется, что это проблема, она проходит через функцию, но сериализованная длина:

echo "Длина сериализована: " . StrLen(сериализации ($ это ->_ элементы));

выходит длиной около 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;

    } 

2 ответа

Мне кажется, что в объекте предмета есть что-то странное. Как один из его членов имеет большой объект, связанный с ним. Я знаю, что у меня были проблемы с сохранением адресов в объекте сеанса. Может быть, есть что-то, что вы делаете вне этого - прикрепление большого объекта с ошибками. Вы можете сделать следующее, чтобы получить raw 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;

    } 

У меня были те же проблемы, когда я кодировал с Magento, это связано с рекурсией, попробуйте var_dump() вместо echo()

Другие вопросы по тегам