无法使用ZF1.12重定向器帮助程序在try / catch中重定向

时间:2014-07-22 12:14:27

标签: php zend-framework redirect helper

我面临着一个奇怪的问题。看来我无法在Redirector表达式中使用ZF1.12 catch() {} Helper。这是我的代码:

    try {
        $scp = new My_Controller_Plugin_Scp();
        $scp->auth();
    } catch(Exception $e) {
        echo $e->getMessage();
     // $this->getHelper('Redirector')->setGotoRoute(array(), 'routeName');
        $this->_helper->redirector->gotoUrl('/url/');
        exit();
    }

似乎在帮助器(注释掉的行)中使用路径名称并不适用于catch() {}表达式。代码被解释为当我手动转到另一个页面时出现了Flash消息(并且错误页面上显示了echo $e->getMessage()),但它根本没有重定向到我应该离开的位置一个空白页面。评论之后的下一行当然是有效的。

我想使用路由名称,因为我之后可能会更改URL。

非常感谢。

1 个答案:

答案 0 :(得分:0)

正如您所注意到gotoRoute是您正在寻找的东西:

try {

    throw new Exception('test');
} catch(Exception $e) {
    //displaying message before redirect is not a good idea.
    //Use flash messages
    echo $e->getMessage();

    $this->_helper->redirector->gotoRouteAndExit(array(), 'home');
}