cakePHP 2中的javascript助手发生了什么?

时间:2012-08-21 08:48:39

标签: cakephp cakephp-2.0 cakephp-2.1

我已使用此item并收到此错误:

Missing Helper
Error: JavascriptHelper could not be found.
Error: Create the class JavascriptHelper below in file: app/View/Helper/JavascriptHelper.php
<?php
     class JavascriptHelper extends AppHelper {
 }

确实,这个文件不存在,我试图在我的帮助数组中使用'Js'。

class myClassController expend AppController {
    var $helpers = array('Html', 'Js'); // and not 'Javascript');

在代码中,调用方法$this->Javascript->codeBlock来添加javascript方法(在内容的中间而不是标题中)但是没有$ this-&gt; Js-&gt; codeBlockcodeBlock。< / p>

$output .= $this->Js->codeBlock("datepick('" . $htmlAttributes['id'] . "','01/01/" . $options['minYear'] . "','31/12/" . $options['maxYear'] . "');");

你能解释一下旧的Javascript帮助器发生了什么,或者如何使代码正常工作?

是否有其他助手可以使用CakePHP-2.0?

亲切,

2 个答案:

答案 0 :(得分:9)

您是否阅读过迁移指南?如果现在不这样做: http://book.cakephp.org/2.0/en/appendices/2-0-migration-guide.html#xmlhelper-ajaxhelper-and-javascripthelper-removed

  

XmlHelper,AjaxHelper和JavascriptHelper删除了AjaxHelper和   JavascriptHelper已被删除,因为它们在版本中已弃用   1.3。 XmlHelper被删除了,因为它已经过时,并且随着Xml的改进而变得多余。应该使用Xml类来替换   以前使用XmlHelper。

     

AjaxHelper和JavascriptHelper被JsHelper取代   和HtmlHelper。

     

JsHelper JsBaseEngineHelper现在是抽象的,你需要   实现以前生成错误的所有方法。

所以

$this->Js->codeBlock('...');

现在是

$this->Html->codeBlock('...');

答案 1 :(得分:0)

HtmlHelper::scriptBlock($code, $options = array())
    //Parameters:   

    $code (string) – The code to go in the script tag.
    $options (array) – An array of html attributes.