【发布时间】:2011-02-02 11:17:18
【问题描述】:
我按照教程为 CakePHP 1.3 创建了一个博客,直到 this step,但在运行应用程序时不断出错:
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 文件都这样做。我正在运行 Windows 7、WAMP 2、PHP 5.3.5、CakePHP 1.3.7 稳定版。
有人知道吗?
【问题讨论】:
-
FormHelper 是否已加载到您的视图中?如果您在视图中执行 pr($this->Html) 会得到什么? pr($html) 怎么样?在 CakePHP 1.3 之前,助手是直接访问的,而不是通过 View 对象。在 CakePHP 1.3 中,这两种方法都可以工作。普通的 $html->link() 或 $form->input() 方法对你有用吗?
-
@mtnorthrop 谢谢。它工作得很好!我会通知 CakePHP 团队这件事
-
嘿,我很高兴这有帮助。是否有可能您实际上没有安装 CakePHP 1.3 并下载了 1.2?如果你检查 cake/VERSION.txt,你应该可以知道。
-
嘿。我确实使用了1.3。我在 CakePHP 邮件列表上发帖,有人指出下载 1.2 并替换
cake文件夹可以解决问题。猜猜这是 1.3 的错误?
标签: cakephp