我有这个自定义错误处理程序:
`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');
答案 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');