我按照教程为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稳定。
任何人都有线索?
答案 0 :(得分:1)
就像上面mtnorthrop的评论一样:
FormHelper是否已加载到您的 看法?如果你这样做,你会得到什么? pr($ this-> Html)在你的视图中?怎么样 关于pr($ html)?直到CakePHP 1.3, 直接访问助手 通过View对象。在CakePHP中 1.3两种方法都应该有效。是普通的$ html-> link()还是$ form->输入() 方法适合你吗? - mtnorthrop 51 分钟前
答案 1 :(得分:0)
从书中可以看出:
“HtmlHelper全部可用 默认情况下的视图如果你得到了 错误通知你它不是 在那里,通常是由于它的名字 手动丢失 配置$ helpers控制器 变量“。
您不需要在控制器中指定它。也许某种程度上干扰核心?顺便说一句,您不需要指定Form。