Magento致命错误:对非对象调用成员函数setCurPage()
我使用工具栏创建了一个块,但发生了一个错误: 致命错误:对非对象调用成员函数setCurPage 我做了很多搜索查询,但找不到解决方案。 有人知道原因吗 请参阅下面我的代码:Magento致命错误:对非对象调用成员函数setCurPage(),magento,Magento,我使用工具栏创建了一个块,但发生了一个错误: 致命错误:对非对象调用成员函数setCurPage 我做了很多搜索查询,但找不到解决方案。 有人知道原因吗 请参阅下面我的代码: class test_Promotion_Block_List extends Mage_Catalog_Block_Product_List { public function __construct() { parent::__construct(); $collection
class test_Promotion_Block_List extends Mage_Catalog_Block_Product_List {
public function __construct() {
parent::__construct();
$collection = Mage::getModel('catalog/product')
->getCollection()
->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left')
->addAttributeToSelect('*')
->addAttributeToFilter('category_id', array('finset' => '98'))
->addAttributeToSort('created_At', 'desc')
;
$this->setCollection($collection);
}
protected function _prepareLayout() {
parent::_prepareLayout();
$toolbar = $this->getToolbarBlock();
// called prepare sortable parameters
$collection = $this->getCollection();
// use sortable parameters
if ($orders = $this->getAvailableOrders()) {
$toolbar->setAvailableOrders($orders);
}
if ($sort = $this->getSortBy()) {
$toolbar->setDefaultOrder($sort);
}
if ($dir = $this->getDefaultDirection()) {
$toolbar->setDefaultDirection($dir);
}
$toolbar->setCollection($collection);
$this->setChild('toolbar', $toolbar);
$this->getCollection()->load();
return $this;
}
public function getDefaultDirection() {
return 'asc';
}
public function getAvailableOrders() {
return array('name' => 'Name', 'position' => 'Position', 'children_count' => 'Sub Category Count');
}
public function getSortBy() {
return 'name';
}
public function getToolbarBlock() {
$block = $this->getLayout()->createBlock('testpromotion/toolbar', microtime());
return $block;
}
public function getMode() {
return $this->getChild('toolbar')->getCurrentMode();
}
public function getToolbarHtml() {
return $this->getChildHtml('toolbar');
}
}
错误嗅探:
Magento Product_列表块支持分页。它们采用URL分页参数,并将其应用于要显示的产品集合
这意味着您看到的错误发生在块的父类中的某个地方。该方法是为集合调用的,因此它意味着其中一个选择的结果不是对象,而是数组或null
更可能的情况是,您正在接收一个数组响应,但没有使用该响应初始化集合,因此在数组上调用该方法会触发此错误
错误信息:
请指定完整的错误信息,包括发生错误的文件和行。这将有助于找到错误的来源
还可以在任何可能更改$collection变量的操作之前/之后使用以下行,因为您可能正在调用$this->setCollectionnull
var_dump(is_object($collection) ? get_class($collection) : get_type($collection));