0

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

所以我做了这个,

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

如果有数据返回,如果没有,则创建一个“未找到页面”,我想它会被 kohana-error 模块捕获,但它不是......这可能吗?这是正确的方法吗?

4

1 回答 1

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

于 2012-12-28T20:37:11.143 回答