0

错误:在 cakephp 的非对象上调用成员函数 create()。我已经在我的控制器页面中定义了所有这些。

联系人控制器:

<?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
  }
?>

索引.ctp

<?php
//form
echo $form->create("Contact");
echo $form->inputs();
echo $form->end('Send');
?>

但是我仍然遇到致命错误吗?需要帮助谢谢。

4

2 回答 2

4

使用$this->Form->create()而不是$form->create().

您必须$this在辅助对象之前使用。

您的 index.php 代码应如下所示:

<?php
//form
echo $this->Form->create("Contact");
echo $this->Form->inputs();
echo $this->Form->end('Send');
?>
于 2013-07-04T05:05:51.983 回答
0

好好检查你的控制器类。您是否重新定义了 AppController::render() 或在子类中重新实现它?您可能这样做是为了为您的应用程序指定布局。我遇到了同样的错误。我发现进入渲染方法的 $view 参数(这是要渲染的视图的名称)为空,因为我覆盖了渲染方法。如果您没有覆盖 render(),请检查您可能设置了控制器的 $view 属性的任何位置。

于 2014-03-09T22:12:46.087 回答