Cakephp 教程示例中未加载HtmlHelper

Cakephp 教程示例中未加载HtmlHelper,cakephp,Cakephp,我按照教程为CakePHP 1.3创建了一个博客,但在运行应用程序时不断出错: Notice (8): Undefined property: View::$Html [APP\views\posts\index.ctp, line 27] 第27行: echo $this->Html->link($post['Post']['title'], array('controller' => 'posts', 'action' => 'view', $post['Post'

我按照教程为CakePHP 1.3创建了一个博客,但在运行应用程序时不断出错:

Notice (8): Undefined property: View::$Html [APP\views\posts\index.ctp, line 27]
第27行:

echo $this->Html->link($post['Post']['title'], array('controller' => 'posts', 'action' => 'view', $post['Post']['id'])); 
显然CakePHP没有加载HtmlHelper类,我在控制器中反复检查,Html应该正确加载

class PostsController extends AppController {
  var $name = 'Posts';
  var $helpers = array('Html', 'Form');

  function index() {
    $this->set('posts', $this->Post->find('all'));
  }
}
当我将这一行添加到视图(index.ctp)中时,它可以正常工作

$this->Html = &$this->loaded['html'];
但显然我不能对每个ctp文件都这么做。我正在运行Windows7、WAMP2、PHP5.3.5、CakePHP1.3.7

有人有线索吗?

来自这本书:

“HtmlHelper有多种版本可供选择 默认情况下的视图。如果您获得 错误通知您它不是 在那里,通常是因为它的名字 在一次事故中失踪 已配置$helpers控制器 变量。”

您不需要在控制器中指定它。也许这样做是在干扰核心?顺便说一句,您也不需要指定表单。

本书:

“HtmlHelper有多种版本可供选择 默认情况下的视图。如果您获得 错误通知您它不是 在那里,通常是因为它的名字 在一次事故中失踪 已配置$helpers控制器 变量。”


您不需要在控制器中指定它。也许这样做是在干扰核心?顺便说一句,您也不需要指定表单。

就像上面mtnorthrop的评论一样:


FormHelper是否正在您的应用程序中加载 意见?如果你这样做,你会得到什么 pr($this->Html)在您的视图中?怎么 关于公关($html)?直到CakePHP 1.3, 而是直接访问助手 通过视图对象的。卡克菲普 1.3两种方法都应该有效。普通的$html->link()或$form->input() 方法对你有用吗mtnorthrop 51 几分钟前


如上文mtnorthrop的评论:


FormHelper是否正在您的应用程序中加载 意见?如果你这样做,你会得到什么 pr($this->Html)在您的视图中?怎么 关于公关($html)?直到CakePHP 1.3, 而是直接访问助手 通过视图对象的。卡克菲普 1.3两种方法都应该有效。普通的$html->link()或$form->input() 方法对你有用吗mtnorthrop 51 几分钟前


谢谢你的帮助。我尝试删除
var$helpers=…
行,但仍然会出现相同的错误谢谢您的帮助。我试图删除
var$helpers=…
行,但它仍然给出相同的错误:视图中是否加载了FormHelper?如果在视图中执行pr($this->Html),会得到什么?公关($html)怎么样?在CakePHP1.3之前,帮助程序是直接访问的,而不是通过View对象访问的。在CakePHP1.3中,这两种方法都应该有效。普通的$html->link()或$form->input()方法适合您吗?@mtnorthrop谢谢。它工作得很好!我会通知CakePHP团队这一点,我很高兴这有帮助。您是否可能实际上没有安装和下载CakePHP 1.3 1.2?如果您检查cake/VERSION.txt.Hey,您应该能够发现。我确实使用了1.3。我发布在CakePHP邮件列表上,有人指出下载1.2并替换
cake
文件夹可以解决问题。那么我猜这是1.3错误?视图中是否加载了FormHelper?如果在视图中执行pr($this->Html),会得到什么?公关($html)怎么样?在CakePHP1.3之前,帮助程序是直接访问的,而不是通过View对象访问的。在CakePHP1.3中,这两种方法都应该有效。普通的$html->link()或$form->input()方法适合您吗?@mtnorthrop谢谢。它工作得很好!我会通知CakePHP团队这一点,我很高兴这有帮助。您是否可能实际上没有安装和下载CakePHP 1.3 1.2?如果您检查cake/VERSION.txt.Hey,您应该能够发现。我确实使用了1.3。我发布在CakePHP邮件列表上,有人指出下载1.2并替换
cake
文件夹可以解决问题。那我猜是1.3个bug吧?