在CakePHP中使用$javascript助手问题;未定义变量:javascript";

在CakePHP中使用$javascript助手问题;未定义变量:javascript";,cakephp,Cakephp,当我想在default.ctp布局中使用$javascript->link('prototype')时,我遇到了问题。它返回: 未定义变量:javascript[APP\views\layouts\default.ctp,第6行] 我还将此代码添加到app_controller.php中: <? class AppController extends Controller { var $Helpers = array('Html','Javascript','Aja

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

未定义变量: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
文件夹中


问题出在哪里?

它必须是
$helpers
而不是
$helpers

它必须是
$helpers
而不是
$helpers

我曾多次遇到过这个问题。这通常是由于控制器代码被覆盖,或者是由于Cake的automagic产品出现了一些奇怪的情况。如果删除所有帮助程序,然后逐个添加它们,最终可能会起作用

生成JavaScript链接的另一个非常有效的方法是使用以下不访问$JavaScript变量的方法:

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

我有过很多次这样的问题。这通常是由于控制器代码被覆盖,或者是由于Cake的automagic产品出现了一些奇怪的情况。如果删除所有帮助程序,然后逐个添加它们,最终可能会起作用

生成JavaScript链接的另一个非常有效的方法是使用以下不访问$JavaScript变量的方法:

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

以防其他人遇到这个bug/问题:它也发生在我身上,直到我注释掉了行
$session->flash()在我的
默认布局中。意识到错误是由flash消息引起的,我回到控制器,注意到我对flash消息使用了单独的布局(例如“message_alert”),而这些布局实际上并不存在于view文件夹中


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

以防其他人遇到此错误/问题:它也发生在我身上,直到我注释掉了行
$session->flash()在我的
默认布局中。意识到错误是由flash消息引起的,我回到控制器,注意到我对flash消息使用了单独的布局(例如“message_alert”),而这些布局实际上并不存在于view文件夹中


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

您只需打开Firefox浏览器的错误控制台(快捷键ctrl+shift+j)

  • 找到错误并单击它
  • 单击后,您将看到头部部分
  • 注意您要定位的JavaScript文件(*.js)的位置(您将看到位置不正确)
  • 从webroot中剪切JavaScript文件并将其粘贴到头块的给定位置
示例:
这将显示在错误控制台上。Map_demo是我的项目,在它的位置上,您的项目名称将显示:

  • 从webroot中剪切JavaScript文件
  • 在项目应用程序文件夹中创建JavaScript文件夹,
    /map\u demo/js
  • test.js
    (您的脚本文件)粘贴到此处

现在您的JavaScript函数可以工作了

只需打开Firefox浏览器的错误控制台(快捷键ctrl+shift+j)

  • 找到错误并单击它
  • 单击后,您将看到头部部分
  • 注意您要定位的JavaScript文件(*.js)的位置(您将看到位置不正确)
  • 从webroot中剪切JavaScript文件并将其粘贴到头块的给定位置
示例:
这将显示在错误控制台上。Map_demo是我的项目,在它的位置上,您的项目名称将显示:

  • 从webroot中剪切JavaScript文件
  • 在项目应用程序文件夹中创建JavaScript文件夹,
    /map\u demo/js
  • test.js
    (您的脚本文件)粘贴到此处

现在您的JavaScript函数可以工作了

CakePHP的哪个版本?JavascriptHelper从1.3开始就被弃用了,它甚至可能没有随2.0一起提供。哪个版本的CakePHP?JavascriptHelper从1.3开始就被弃用了,它甚至可能没有随2.0一起提供。array()应该不需要,如果他不能访问Javascript Helper,我认为Html Helper不会有什么不同。哦,谢谢!helpers变量在另一个位置被覆盖。不需要数组(),如果他无法访问Javascript帮助程序,我认为Html帮助程序不会有什么不同。哦,谢谢!helpers变量在另一个位置被覆盖。