在CakePHP中使用$ javascript helper问题:“未定义的变量:javascript”

时间:2011-07-26 15:14:14

标签: cakephp

我想在$javascript->link('prototype')布局中使用default.ctp时遇到问题。它返回:

  

未定义的变量:javascript [APP \ views \ layouts \ default.ctp,第6行]

我还将此代码添加到 app_controller.php

<?
    class AppController extends Controller {
        var $Helpers = array('Html','Javascript','Ajax','Form');
    }
?>

文件prototype.js已位于webroot/js文件夹中。

问题出在哪里?

3 个答案:

答案 0 :(得分:1)

必须是$helpers而不是$Helpers

答案 1 :(得分:1)

我多次遇到这个问题。它通常是由控制器代码被某处覆盖引起的,或者是由于Cake的自动化内容发生的一些奇怪现象。如果您删除所有帮助程序然后逐个添加它们,它最终可能会起作用。

生成JavaScript链接的另一种完全有效的方法是使用以下不能访问$ javascript变量:

echo $html->script(array('prototype'));

答案 2 :(得分:0)

以防其他人遇到此错误/问题:我也发生了这种情况,直到我在$session->flash();布局中注释了default行。意识到错误是由闪存消息引起的,我回到控制器并注意到我正在使用单独的布局来处理flash消息(例如'message_alert'),并且这些布局实际上并不存在于视图文件夹中!

请记住,这样的错误可能意味着文件尚未定义。祝你好运。