Magento版本號總是幫助調試Mangeto問題。此外,Android(你的標籤)適合哪裏?
假設下面一行是造成您的系統上的麻煩一個
$pager = $this->getLayout()->createBlock('page/html_pager', 'sales.order.history.pager')
->setCollection($this->getOrders());
的Magento試圖創建一個page/html_pager
塊對象(其中,假設沒有覆蓋到位,相當於Mage_Page_Block_Html_Pager)。
在工作系統中,這是通過以下調用完成的。
$this->getLayout()->createBlock('page/html_pager', 'sales.order.history.pager')
其返回塊的對象,然後塊的setCollection方法被稱爲
->setCollection($this->getOrders());
然而,在你的系統中,createBlock方法沒有返回一個對象,我的猜測是它返回一個布爾值。查看Layout類的createBlock方法的開始部分。
#File: app/code/core/Mage/Core/Model/Layout.php
public function createBlock($type, $name='', array $attributes = array())
{
try {
$block = $this->_getBlockInstance($type, $attributes);
} catch (Exception $e) {
Mage::logException($e);
return false;
}
所以,您的系統被改變或在嘗試創建page/html_pager
塊拋出異常的方式進行配置。檢查你的Magento異常日誌可以查看正在記錄什麼樣的錯誤,或者只是在var_dump
try {
$block = $this->_getBlockInstance($type, $attributes);
} catch (Exception $e) {
var_dump($e->getMessage()); //don't forget to remove me before pushing
//to production
Mage::logException($e);
return false;
}
暫時下降至於這段代碼做什麼,它會如何影響你的系統中,setCollection
方法添加收藏對象(類似於模型對象的數組)到Block對象。沒有收集,您的尋呼機模塊將(很可能)不能正確呈現。
此文件是否曾以其他方式更改過?當我檢查源代碼行58是空的並且第60行有`setCollection`時,表明文件中缺少某些內容。 – clockworkgeek 2010-12-11 16:01:02