在查看CookBook和一些代码示例时,我被告知相信在view.ctp中包含$this->App->js();
会输出JS [CDATA],但它会发出致命错误:
致命错误:在第32行的/Users/work/Dropbox/Websites/cake-cart/app/View/Layouts/default.ctp中的非对象上调用成员函数js()
日志中的查看仅显示与以下内容相关的调度错误:
2012-11-26 13:15:39错误:[MissingControllerException]无法找到控制器类CssController。 //app/webroot/index.php(92):Dispatcher-> dispatch(Object(CakeRequest),Object(CakeResponse)){main}
我无法追踪它。也许没有足够的系统知识。谁有更多的经验?
关于我的设置的唯一事情 - 不确定它是否相关 - 是我使用引导主题并在AppController APP / View / Themed / Bootstrap /中设置主题
class AppController extends Controller {
public $theme = "Bootstrap";
...
这似乎服务该网站确定...但对于这个js()致命错误和日志中的CSSController错误。
任何帮助将不胜感激,谢谢。
**已编辑**
好的......我得到了这个数字。看起来我正在引用的示例在APP / View / Helper / AppHelper.php中创建了一个公共函数,如下所示:
class AppHelper extends Helper {
public $helpers = array(
'Html',
'Form',
'Session',
'Js',
);
public function js() {
$shop = array();
$shop['basePath'] = Router::url('/');
$shop['params'] = array(
'controller' => $this->params['controller'],
'action' => $this->params['action'],
);
return $this->Html->scriptBlock('var Shop = ' . $this->Js->object($shop) . ';');
}
}
...因此有理由为什么在default.ctp中它是$ this-> App-> js()....但我仍然收到错误
答案 0 :(得分:0)
好的,我将违规代码从AppHelper移到了我自己的Helper,并从主页调用了这个帮助器,这一切都很好。我从未弄清楚为什么$ this-> App-> js();没用。好吧......有时候做很多事情的方法很多。