如何从控制器添加重定向

时间:2014-02-10 09:49:47

标签: php magento

我已经尝试过在这里和那里找到的这个脚本的每个版本,但它仍然无法正常工作。 我有一个控制器在后端保存订单后执行某些操作。其中一项操作是在某些条件下自动生成发票。通常的重定向会将我发回订单视图:我想转到发票视图。

$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上触发。 我怎样才能正确重定向?

2 个答案:

答案 0 :(得分:0)

你可以在管理员控制器的自定义模块中使用如下所示的工作..

$this->getResponse()->setRedirect(Mage::helper('adminhtml')->getUrl("adminhtml/sales_order/view", array('order_id'=>$order_num)));
        return;
希望这对你有用。让我知道我是否可以为你提供更多帮助。

答案 1 :(得分:0)

为什么不使用默认控制器重定向功能?

function someAction()

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

要记住的一件事是,_redirect(也不是你的方法)将重定向,直到动作功能完成。如果此重定向位于“if语句”内,则需要添加返回值;后来退出任何剩余的功能。