2010-11-28 17 views
0

我有这样的自定义错误处理程序:如何在ErrorHanlder中包含javascript帮助器?

`类AppError延伸的ErrorHandler {

功能error404($ PARAMS){$ 这 - >控制器 - >布局= '公众'; $ this-> controller-> set('title','Droptor Page Not Found'); parent :: error404($ params); } }`

,我似乎不能使用具有这种任何布局: $javascript->link('jquery',true)

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

回答

2

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

给助手添加到您的差错控制,只需添加这行:

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

有两种方法可以做到这一点:

首先,你可以创建一个app_controller包括每组件和帮助程序,您需要在所有控制器上进行操作。

其次,您可以加载错误控制器所需的特定资源。中创建一个应用程序的根(不是根目录),用下面的代码名为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

首先,如果您正在处理常见的错误类型(例如404),则不需要创建自己的处理程序。自定义错误处理程序适用于您的应用程序特定错误。

如果您只想在发生404错误时更改页面布局,则已通过here回答此问题。

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

你可以使用线路导致它:

$this->cakeError('error404'); 
+0

谢谢 - 我已经解决了这个问题。但你如何包含JS助手? – Justin 2010-11-28 19:28:20

+0

尝试使用“Javascript”而不是“javascript”(注意大小写)var $ helpers = array('Javascript');让我知道这是否有帮助。 – RabidFire 2010-11-28 19:43:51