ZF1在重定向之前获取错误

时间:2014-01-17 09:08:09

标签: php zend-framework redirect

正如标题所说,我希望在重定向之前得到所有错误。所以这是我的情况:

我有一个选择更改数据库(相同的结构,但不同的数据); 所以我要说我在这里:localhost/user/edit/id/100 (database 1) 在db更改时,我将用户重定向到同一页面,但我们从数据库2加载数据。 如果找不到,我收到错误:

"Fatal error: Call to a member function on a non-object ..."

如何在重定向发生之前捕获错误以更改网址? 谢谢!

1 个答案:

答案 0 :(得分:0)

在重定向之前使用try {} catch() {}来捕获错误。

try {
    if (/* if error occured */) {
        throw new \Exception('Error occured');
    }
} catch(\Exception $e) {
    // redirect with error occured
}

// redirect without error

在Zend中可能需要使用return $redirectObj,我不太了解Zend。

在您的情况下,请尝试执行此操作:

try { 
    if ( ! $this->getResponse()) {
        throw new Exception('Error occured! Can not get response object');
    }

    return $this->getResponse()->setRedirect($url);
} catch (Exception $e) { 
    echo $e->getMessage(); 
    die(); 
}