我一直在尝试找到有关如何在Kohana 3.0中自定义错误页面的完整解释,但到目前为止我并不幸运。那么,根据Kohana Guide提供的解决方案,谁能告诉我该怎么做?
当我说完整的解释时,我的意思是类的位置、它们的名称、要扩展的类、完整的代码,以及其中一个错误的视图。
非常感谢。
我一直在尝试找到有关如何在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 使用“级联文件系统”,因此您可以将2中所示的代码添加到
应用程序/类/ kohana/异常.php
在该文件中,您将扩展 Kohana 异常处理程序
class Kohana_Exception extends Kohana_Kohana_Exception {
public static function exception_handler(Exception $e)
{
...
}
}
显示的路线被添加到您的应用程序引导程序中
应用程序/bootstrap.php
在路由错误时,您可以知道控制器将是什么:
Route::set('error', 'error/<action>(/<message>)', array('action' => '[0-9]++', 'message' => '.+'))
->defaults(array(
'controller' => 'error_handler'
));
因此将在以下位置创建一个控制器:
应用程序/类/控制器/error_handler .php
这看起来像:
<?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();
...
}
}
然后,您的意见将(可能)置于:
应用程序/视图/错误/404 .php
文档简短的原因是因为相同的答案并不适用于所有人。例如,大多数人(我知道)使用他们自己的模板等。