Cakephp 教程示例中未加载HtmlHelper
我按照教程为CakePHP 1.3创建了一个博客,但在运行应用程序时不断出错: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'
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吧?