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()。我已经在我的控制器页面中定义了所有这些。
联系人控制器:
1 2 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
}
?> |
索引文件
1 2 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代码应该如下所示:
1 2 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属性的任何地方。