2010-11-28 23 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