我面临着一个奇怪的问题。看来我无法在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。
非常感谢。
答案 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');
}