-1

可能重复:
调用非对象上的成员函数

我刚刚开始学习 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 文件无法写入其模型?

4

1 回答 1

2

您必须遵循 CakePHP 的编码标准。在这种情况下,“用户”类将不起作用。您必须使用“用户”类并重构代码以查找用户。

于 2012-11-27T16:25:04.547 回答