如何动态加载Kohana3的404自定义页面?

时间:2012-11-14 07:23:49

标签: php kohana-3 custom-error-pages kohana-3.2

感谢mdskinner,我使用了来自how-to-setup-a-custom-404-page-for-a-kohana-v3-app的解决方案。所以,我的工作代码就像:

Kohana_Exception::$error_view = 'kohana/404';//bootstrap.php

and the view file path is system/views/kohana/404.php

不幸的是,404页面是一个静态页面。但是,我想要动态加载页脚,就像在任何其他页面上一样 - 使用控制器和视图。这可能是404自定义页面吗?

2 个答案:

答案 0 :(得分:1)

在你的index.php中,你在请求​​执行和你的回声之间放了一个try / catch块,就像这样

$request = Request::factory();

try
{
  $response = $request->execute();
}
catch (Exception $exc)
{
  if ($exc instanceof HTTP_Exception && $exc->getCode() === 404)
  {
     $response = Request::factory('your404route')->execute()->status(404);  
  } else {
    throw $exc;
  }
}

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

答案 1 :(得分:0)

是的,你很容易。请使用3.2 - http://kohanaframework.org/3.2/guide/kohana/tutorials/error-pages的官方指南或来自Lysender的精彩博客文章 - http://blog.lysender.com/2010/08/kohana-404-pages/(这实际上是3.1版本,但3.2和3.1之间的变化并不大)。