我一直试图在 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/