可能重复:
调用非对象上的成员函数
我刚刚开始学习 cake php,并试图创建一个由一个字段组成的非常简单的注册表单。但是,我无法与我的模型交互。下面的代码:
这是我的注册控制器:
class RegisterController extends AppController{
public $helpers = array('Form', 'Html', 'Js');
public function index(){
}
}
这是我的注册控制器 index.ctp 视图:
echo $this->Form->create('Users', array('controller' => 'Users', 'action' => 'createUser'));
echo $this->Form->input('username');
echo $this->Form->end('Register');
然后我创建了一个 UsersController.php 文件和一个 Users.php(模型)文件来处理表单数据的验证和保存。
用户控制器.php:
class UsersController extends AppController{
public function createUser(){
$this->Users->create();
$this->Users->save($this->Request->data);
}
}
和 Users.php 模型文件:
class Users extends AppModel {
public $validation = array(
'username' => array(
'rule1' => array(
'rule' => 'isUnique',
'message' => 'That username is already taken'
),
'rule2' => array(
'rule' => 'nonEmpty',
'message' => 'This field cannot be empty',
'required' => true
)
)
);
}
但是,每当我点击表单上的“注册”按钮时,都会出现以下错误:
Call to a member function create() on a non-object
它指的是我的 UsersController.php 文件中的以下行:
$this->Users->create();
我在我的蛋糕数据库中创建了一个用户表,php 文件可以看到它。我不明白为什么我的 UsersController.php 文件无法写入其模型?