如何设置HTTP_Exception_404

时间:2012-11-21 18:21:23

标签: php kohana kohana-3.2

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

所以我这样做了,

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

如果有数据返回,如果没有,则创建一个'找不到页面'并且我将它用kohana-error模块捕获它但它不是.... 那可能吗?这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

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异常执行一个控制器,或者您可以使用catch all 404页面来处理所有异常(50x和40x错误)