控制器不存在时停止页面未找到错误

时间:2011-02-08 21:27:25

标签: php zend-framework

在生产模式(最小错误)中,当找不到控制器时,Zend会发出404页面找不到错误。有几个控制器,我不想激活它。即使它们不存在,我也不希望页面未找到错误激活。是否有可能以某种方式阻止该错误并给出一个空页面。我猜,如果可能的话,它必须在插件级别完成,因为没有控制器真的存在来处理这个。

1 个答案:

答案 0 :(得分:2)

一种可能的解决方案是检查errorAction中的请求对象以获取控制器和/或抛出异常的操作(对于不存在的控制器和操作,您也可以通过这种方式获取其名称)。基于此,您可以自定义其余的errorAction。例如:

 public function errorAction() {
        $errors = $this->_getParam('error_handler');

        $whatController = $errors->request->getControllerName();

        if ('secretController' == $whatController) {
             return $this->_redirect('blankErrorPage');
        }

        // usual rest of errorAction
 }