你如何在ErrorHandler中包含javascript助手?

时间:2010-11-28 19:02:40

标签: php cakephp cakephp-1.2

我有这个自定义错误处理程序:

`class AppError扩展了ErrorHandler {

function error404($ params){   $ this-> controller-> layout ='public';   $ this-> controller-> set('title','Droptor Page Not Found');   父:: error404($ params)方法;  } }`

我似乎无法使用任何具有此功能的布局: $javascript->link('jquery',true)

所以没有加载JS助手。但是,如果我在控制器中包含它:var $helpers = array('javascript');它仍然不起作用。 App::import('Helper', 'javascript');

也没有

2 个答案:

答案 0 :(得分:2)

废话,我没有看到你的问题。

要向错误控制器添加帮助程序,只需添加以下行:

$this->controller->helpers = array('Javascript');

有两种方法可以做到:

首先,您可以创建app_controller以包含所有控制器上所需的每个组件和帮助程序。

其次,您可以加载错误控制器所需的特定资源。使用以下代码在应用程序的根目录(不是webroot)中创建名为error.php的文件:

<?php
class AppError extends ErrorHandler  {
    function error404($params) {
        $this->controller->helpers = array('Javascript');
        parent::error404($params);
    }
}

您还可以使用

设置自定义标题
$this->controller->set('title_for_layout', "We couldn't find what you are loooking for");
祝你好运。

答案 1 :(得分:1)

首先,如果您所做的只是处理常见的错误类型,例如404,则无需创建自己的处理程序。自定义错误处理程序是针对您的应用程序特定错误的。

如果您只想在收到404错误时更改页面布局,则会通过here回答。

function beforeRender() {
    if($this->name == 'CakeError') {
        $this->layout = false;
    }
}

你可以使用以下行:

$this->cakeError('error404');