在非对象上调用成员函数setLayer()

时间:2013-07-05 07:58:48

标签: php magento

  

致命错误:在非对象中调用成员函数setLayer()   /home/content/74/10047874/html/shop/app/code/core/Mage/Catalog/Block/Layer/View.php   在第135行

 $this->setChild($attribute->getAttributeCode() . '_filter',
            $this->getLayout()->createBlock($filterBlockName)
                ->setLayer($this->getLayer())
                ->setAttributeModel($attribute)
                ->init());
  

请帮我解决这个问题

1 个答案:

答案 0 :(得分:-2)

尝试注释掉特定页面的整个代码。

OR

将整个代码放入if特定页面的条件中。

例如,如果在cms主页中显示的错误比这样。

if(Mage::getSingleton('cms/page')->getIdentifier() == 'home' && Mage::app()->getFrontController()->getRequest()->getRouteName() == 'cms')
{}
else
         {
         $this->setChild($attribute->getAttributeCode() . '_filter',
             $this->getLayout()->createBlock($filterBlockName)
                 ->setLayer($this->getLayer())
                 ->setAttributeModel($attribute)
                 ->init());
         }