CakePHP-2.0:如何检查控制器缺少的操作/缺失视图


CakePHP-2.0: How can i check missing action/ missiong view for a controller?

如果有人在浏览器url栏中点击http://mysite/users/unknownaction然后我就犯了错误。

我想捕捉那个错误并重定向到http://mysite/。

我如何在CakePHP-2.0中做到这一点。

正如Hugo所建议的那样,当您处于生产模式时,丢失的URL将抛出一个NotFoundException,默认情况下,它会生成一个标准的"404未找到"页面。如果您想改变这种行为,您必须查看CakePHP 2.0中处理异常的文档。

在"app"文件夹上创建一个文件"app_error.php"。

<?php 
  class AppError extends ErrorHandler {
    function error404($params, $messages) {
      $this->Session->flash($messages);
      $this->controller->redirect(array('controller'=>'welcome', 'action'=>'index'));
      parent::error404($params);
    }
  }
?>

您可以在重定向之前将错误消息保存在会话闪存上。