2014-02-10 51 views
0

我已經嘗試過在這裏和那裏找到的這個腳本的每個版本,但它仍然不起作用。 我有一個控制器在後臺保存訂單後執行某些操作。其中一項行動是在特定條件下自動生成發票。通常的重定向將我退回到訂單視圖:我想要轉到發票視圖。如何添加來自控制器的重定向

$url = Mage::helper('adminhtml')->getUrl('sales_order_invoice/view', array('invoice_id' => $invoice->getId(), 'order_id' => $order->getId())); 
Mage::app()->getResponse()->setRedirect($url)->sendResponse(); 

此代碼不工作:我像往常一樣重定向到訂單視圖。觀察員在sales_order_save_after上觸發。 我如何正確重定向?

回答

0

,你可以使用如下這在管理控制器的自定義模塊爲我工作..

$this->getResponse()->setRedirect(Mage::helper('adminhtml')->getUrl("adminhtml/sales_order/view", array('order_id'=>$order_num))); 
     return; 

希望這會爲你工作。讓我知道,如果我可以幫助你更多。

+1

Mage :: app() - > getResponse() - > setRedirect(age :: helper('adminhtml') - > getUrl(「adminhtml/sales_order/view」,array('order_id'=> $ order_num) )) - > sendResponse(); exit(0); –

+0

'$ this-> getResponse()'爲'null'。 '退出(0)'成功了,謝謝阿米特貝拉。無論如何,我發現在發票實際創建之前我調用了'$ invoice-> getId()'。我必須知道如何以及何時創建正確的URL! – Thundar

0

爲什麼不使用默認的控制器重定向功能?

function someAction() 

{ 
    /* do your thing*/ 
    $this->_redirect('*/sales_invoice/view', 
         array('invoice_id'=> $invoice->getId()) 
    ); 
} 

有一點要記住的是,_redirect(也不是你的方法)會重定向到動作功能齊全。如果此重定向位於「if語句」中,則需要添加一個返回;後綴來退出任何剩餘的功能。

相關問題