2012-11-07 50 views
0

我最近將magento從1.4.0.1升級到1.7.0.2。現在我在發票詳細信息頁面上出現錯誤。在發票詳細信息頁面上獲取錯誤

致命錯誤:調用一個成員函數updateBackButtonUrl()中d的非對象:\ XAMPP \ htdocs中\ magento171 \應用\代碼\核心\法師\ Adminhtml \控制器\ SALES \訂單\ InvoiceController.php上上線151線151

的代碼是

$this->getLayout()->getBlock('sales_invoice_view')->updateBackButtonUrl($this->getRequest()->getParam('come_from')); 

誰能幫助,如何來解決這個問題。

回答

3

因爲我最近更新了magneto,所以有機會更換控制器或視圖文件,所以我用新的新版本替換了所有文件,但問題仍然存在。

然後,我從消息exception.log文件

異常「Mage_Core_Exception」發現「所要求的付款方式是不可用的。」在D:\ Mage.php中:594

由於數據庫中已有很多訂單和發票記錄,所以我認爲這些訂單和發票的付款方式可能未安裝或可能被禁用。因此,與舊管理員分析並比較兩種付款方式未被系統識別爲這些訂單。

  1. Amazon支付。
  2. 有線轉移。

以及與此相關的所有命令在詳細頁面中都有問題。 後來我發現付款存儲在'sales_flat_order_payments'表中,並且該字段是'方法',但是當我看到該字段具有值時。

然後,我做了一個竅門,並使用有線傳輸和亞馬遜支付(我已經安裝了一個新的亞馬遜支付模塊)做了一些測試訂單,所以現在我可以看到有關它的發票的詳細頁面,所以我確信它以前沒有打開我們在與銷售和有線傳輸相關的數據庫表中存在衝突,並通過執行此事務解決衝突

對於亞馬遜,新訂單的值不同,因此我將其替換舊的價值與新的亞馬遜支付價值。

UPDATE sales_flat_order_payment SET method='checkoutbyamazon_sandbox' WHERE method='amazonpayments_cba'; 

現在所有與amazon相關的發票的詳細頁面都沒有錯誤。

0

此按鈕在1.7x下工作,因此它是您的設置,而不是Magento中的錯誤。要弄清楚發生了什麼:

檢查是否沒有模塊重寫Mage_Adminhtml_Block_Sales_Order_Invoice_View並確保InvoiceController.php文件的app/code/local中沒有副本。

通過'消除進程',您可以禁用應用程序/ etc/modules中的模塊添加。

還要確保控制器文件和app/code/core/Mage/Adminhtml/Block/Sales/Order/Invoice/View.php是1.7x而不是1.4x。

+0

我檢查沒有模塊正在重寫Mage_Adminhtml_Block_Sales_Order_Invoice_View。也沒有這個模塊的語言環境的副本和文件是從1.7x –

+0

我也寫在線上151. var_dump($ this-> getLayout() - > getBlock('sales_invoice_view')); 它正在返回bool(false); –

相關問題