Php 如何设置HTTP_异常_404

Php 如何设置HTTP_异常_404,php,kohana,kohana-3.2,Php,Kohana,Kohana 3.2,我使用的是kohana 3.2,当页面不存在时,kohana错误模块工作正常。 但是我有这样的情况:页面存在,但是没有数据,因为数据不存在。我正在使用route参数检查de数据库 所以我就这样做了, if($response ) { return $response; } else { throw new HTTP_Exception_404('Page Not Found'); } 如果有数据返回,如果没有,创建一个“未找到页面”,我相信

我使用的是kohana 3.2,当页面不存在时,kohana错误模块工作正常。 但是我有这样的情况:页面存在,但是没有数据,因为数据不存在。我正在使用route参数检查de数据库

所以我就这样做了,

if($response )
    {
       return $response; 
    } else {
       throw new HTTP_Exception_404('Page Not Found');
    }
如果有数据返回,如果没有,创建一个“未找到页面”,我相信它将被kohana错误模块捕获,但它不是。。。。
可能吗?这是正确的方法吗

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

$request=request::factory();
尝试
{
$response=$request->execute();
如果(!$response->body())
{
抛出新的HTTP_异常_404();
}
}
捕获(例外$exc)
{
if($exc instanceof HTTP_Exception_404)
{
$response=Request::factory('your/404error/controller')->execute();
}
其他的
{
//重播例外
抛出$exc;
}
}
回声
$response
->发送头()
->身体();

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

Hmm。。也许您必须将
Kohana::$environment
设置为Production?