我一直试图在 Kohana 3.0 中找到有关如何自定义错误页面的完整说明,但到目前为止我还不太幸运。因此,基于Kohana Guide提供的解决方案,任何人都可以告诉我该怎么做?

当我说完整的解释时,我的意思是,这些类的位置,它们的名称,要扩展的类,完整的代码,并请查看其中一个错误。

非常感谢。

最佳答案

我建议您阅读http://kohanaframework.org/3.0/guide/kohana/conventions。您可以根据类名以及Kohana自动加载的方式来计算需要为自己创建的文件。 Kohana对我而言的魅力在于,它不会为您做任何事情,因此,以我的观点阅读文档非常重要。

注意:我没有特别使用Kohana 3.0,但这应该适用。

例如,部分 1 是此代码:

<?php defined('SYSPATH') or die('No direct access');

class HTTP_Response_Exception extends Kohana_Exception {}

Kohana使用'cascading filesystem',因此您需要将 2 中显示的代码添加到



在该文件内,您将扩展Kohana异常处理程序
class Kohana_Exception extends Kohana_Kohana_Exception {

   public static function exception_handler(Exception $e)
   {
       ...
   }
}

显示的 route 已添加到您的应用程序 bootstrap 中,该 bootstrap 位于



由于出现了routed错误,您可以知道 Controller 将是什么:
Route::set('error', 'error/<action>(/<message>)', array('action' => '[0-9]++', 'message' => '.+'))
->defaults(array(
    'controller' => 'error_handler'
));

因此,将在以下位置创建一个controller:



看起来像:
<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Error_Handler extends Controller_Template {

    ...

    public function action_404()
    {
        $this->template->title = '404 Not Found';
        // A view example
        $view = View::factory('error/404');
        $view->render();
        ...
    }
}

然后(可能)将您的views放在以下位置:



文档简短的原因是,相同的答案并不适用于所有人。例如,大多数人(我知道)使用自己的模板等。

关于exception-handling - 如何在Kohana 3.0中自定义错误页面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11521436/

10-13 06:16