Error: Call to a member function create() on a non-object in cakephp even thought the name of the model has been defined
错误:在cakephp中对非对象调用成员函数create()。我已经在我的控制器页面中定义了所有这些。
联系人控制器:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 | <?php
 public $helpers = array('Html', 'Form');
 public $components = array('RequestHandler');
 public $uses = array("Contact");
 public function index(){
  if ($this->RequestHandler->isPost()) {
    $this->Contact->set($this->data);
    //validates here
  }
?> | 
索引文件
| 12
 3
 4
 5
 6
 
 | <?php
//form
echo $form->create("Contact");
echo $form->inputs();
echo $form->end('Send');
?> | 
但我还是会犯致命的错误吗?需要帮助,谢谢。
		
		
- 什么是$form?
- 哈哈,我完全忘了。应该是$this->form->create("contact");
- 这个问题似乎是一个主题之外的问题,因为它是一个非常狭隘、具体的案例,不适用于一般公众。
- @Burhankhalid我不同意,因为这是1.3及之前版本的有效语法。它在2.0版中更改了
 
	 
用$this->Form->create()代替$form->create()。
在helper对象之前必须使用$this。
index.php代码应该如下所示:
| 12
 3
 4
 5
 6
 
 | <?php
//form
echo $this->Form->create("Contact");
echo $this->Form->inputs();
echo $this->Form->end('Send');
?> | 
		
		
- stackoverflow.com/questions/999307/这在cakeph&zwnj;&8203;p中的意义
- 是的,我忘了一点。但是为什么我会再次得到这个错误呢?对非对象调用成员函数send()。这是因为我使用cakephp.2吗?
- 不,这不是蛋糕的问题。我编辑了我的答案。
- 查看book.cakephp.org如何使用cake2中的新cakemail类,最重要的是阅读迁移指南,其中列出了所有更改。
 
	 
检查你的控制器类。您是否重新定义了AppController::Render()或在子类中重新实现了它?您可能这样做是为了指定应用程序的布局。我也犯了同样的错误。我发现进入render方法的$view参数(它是要渲染的视图的名称)为空,因为我覆盖了render方法。如果没有overrride render(),请检查您可能设置了控制器的$view属性的任何地方。