【问题标题】:How to set a HTTP_Exception_404如何设置 HTTP_Exception_404
【发布时间】:2012-11-21 18:21:23
【问题描述】:

我正在使用 kohana 3.2,当页面不存在时,kohana-error 模块工作正常。 但是我有这种情况:页面存在,但是没有数据进来,因为数据不存在。我正在使用路由参数来检查数据库。

所以我这样做了,

if($response )
    {
       return $response; 
    } else {
       throw new HTTP_Exception_404('Page Not Found');
    }

如果有数据返回,如果没有,创建一个'Page Not Found',我想它会被kohana-error模块捕获但它不是...... 那可能吗?这是正确的方法吗?

【问题讨论】:

  • 嗯.. 也许您必须将 Kohana::$environment 设置为生产?

标签: php kohana kohana-3.2


【解决方案1】:

在您的index.php 中,您执行以下操作:

$request = Request::factory();

try
{
  $response = $request->execute();

  if (!$response->body())
  {
    throw new HTTP_Exception_404();
  }
}
catch (Exception $exc)
{
   if ($exc instanceof HTTP_Exception_404)
   {
      $response = Request::factory('your/404error/controller')->execute();
   }
   else
   {
      // rethrow exception
      throw $exc;
   }
}

echo
  $response
  ->send_headers()
  ->body();

这样,您可以为每个 HTTP 异常执行一个控制器,或者您可以对所有异常(50x 和 40x 错误)使用 catch all 404 页面

【讨论】:

    猜你喜欢
    • 2011-11-18
    • 2020-02-21
    • 1970-01-01
    • 2023-02-18
    • 2020-02-05
    • 1970-01-01
    • 2018-05-20
    • 2011-05-16
    • 2016-07-09
    相关资源
    最近更新 更多