Php ZF1在重定向之前获取错误

Php ZF1在重定向之前获取错误,php,zend-framework,redirect,Php,Zend Framework,Redirect,正如标题所说,我希望在重定向之前获得所有错误。这就是我的情况: 我可以选择更改数据库(相同的结构但不同的数据); 假设我在这里:localhost/user/edit/id/100(数据库1) 在db更改时,我将用户重定向到同一页面,但我们从数据库2加载数据。 如果找不到,我会得到一个错误: “致命错误:对非对象调用成员函数…” 如何在重定向发生之前捕获错误以更改url? 谢谢 用于在重定向之前捕获错误 try { if (/* if error occured */) {

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

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

“致命错误:对非对象调用成员函数…”

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

用于在重定向之前捕获错误

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

// redirect without error
在Zend中,可能需要使用
返回$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(); 
}

已经尝试过:尝试{$this->getResponse()->setRedirect($url);}catch(异常$e){echo”“;print_r($e);echo”“;die();}但它不起作用;似乎zend没有缓存这种类型的错误;仍然不起作用。重定向发生时,我收到了相同的错误“致命错误:调用非对象上的成员函数…”方法
$this->getResponse()
在Zend1中真的有效吗?可能您忘了在自己的控制器中扩展基本控制器?例如,尝试扩展
Zend\u controller\u Plugin\u Abstract
类或尝试使用
标题(“位置:http://generated_url_with_zend");PHP函数。但这个错误出现在你重定向某人之后,所以在重定向之前你无法捕捉到它(或者我误解了你的解释)。此外,您无法使用try/catch块捕获致命错误。您需要注册关机功能