好的,这真的很奇怪我有以下test_sign_up动作:
public function test_sign_up(){
if($this->request->is('post')){
$signup_result = $this->request->data;
$userData = array('User' => array(
'username' =>$signup_result['User']['username'],
'password'=> $signup_result['User']['password'],
'group_id' => 2,
'client_id' => 9999));
$this->User->create();
if ($this->User->saveAll($userData)) {
$this->Session->setFlash(__('The user has been saved'));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The user could not be saved. Please, try again.'));
}
}
}
现在当我尝试保存用户时,我得到了:
Call to a member function create() on a non-object
请注意,此功能位于我的UsersController
更新
如果我这样做:
$this->loadModel('User');
它没有问题,但是当我已经在绑定到User模型的控制器中时,这是否必要?
答案 0 :(得分:2)
如果控制器中有$uses
数组,则控制器会在实例化时将这些数组作为模型加载。例如:
<?php
class UsersController extends AppController {
public $uses = array(
'Client',
'Website',
'Category',
'Type',
'WebsiteIssue'
);
}
在上面,用户控制器将仅加载指定的五个模型。如果您希望实例化用户模型(如果未指定$uses
则默认情况下),那么只需将'User'
添加到$uses
数组中。
答案 1 :(得分:0)
使用$this->Form->create()
代替$form->create()
。
您必须在帮助对象之前使用$this
。
您的index.php代码应如下所示:
echo $this->Form->create("Contact");