我想在$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
文件夹中。
问题出在哪里?
答案 0 :(得分:1)
必须是$helpers
而不是$Helpers
。
答案 1 :(得分:1)
我多次遇到这个问题。它通常是由控制器代码被某处覆盖引起的,或者是由于Cake的自动化内容发生的一些奇怪现象。如果您删除所有帮助程序然后逐个添加它们,它最终可能会起作用。
生成JavaScript链接的另一种完全有效的方法是使用以下不能访问$ javascript变量:
echo $html->script(array('prototype'));
答案 2 :(得分:0)
以防其他人遇到此错误/问题:我也发生了这种情况,直到我在$session->flash();
布局中注释了default
行。意识到错误是由闪存消息引起的,我回到控制器并注意到我正在使用单独的布局来处理flash消息(例如'message_alert'),并且这些布局实际上并不存在于视图文件夹中!
请记住,这样的错误可能意味着文件尚未定义。祝你好运。