【问题标题】:How do you include the javascript helper in the ErrorHanlder?如何在 ErrorHandler 中包含 javascript 帮助程序?
【发布时间】:2011-05-16 22:54:37
【问题描述】:

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

`class AppError 扩展 ErrorHandler {

函数错误404($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');也没有

【问题讨论】:

    标签: php cakephp cakephp-1.2


    【解决方案1】:

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

    如果您想在遇到 404 错误时简单地更改页面布局,这已通过 here 得到解答。

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

    你可以使用这条线来引起它:

    $this->cakeError('error404');
    

    【讨论】:

    • 谢谢 - 我已经解决了这个问题。但是如何包含 JS 助手呢?
    • 尝试在 var $helpers = array('Javascript'); 行中使用“Javascript”而不是“javascript”(注意大小写)让我知道这是否有帮助。
    【解决方案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");
    

    祝你好运。

    【讨论】:

    • 谢谢!这很有效,尽管一旦我在 JavaScript 中添加时我必须包含 Html,因为覆盖它删除了我假设的 Html 的包含。
    猜你喜欢
    • 2018-11-06
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 2010-12-20
    相关资源
    最近更新 更多