我有三个具有类别关联的表“类别”,“课程”和“主题”
当我尝试保存数据时出现错误 “调用成员函数create()时为null”。
class SubjectsController extends AppController {
public $uses = array('Category','Course');
public function add(){
pr($this->request->data);die;
if ($this->request->is('post')) {
pr($this->request->data);die;
$this->Subject->create();
if ($this->Subject->save($this->request->data)) {
$this->Flash->success(__('The subject has been saved.'));
return $this->redirect(array('action' => 'index'));
} else {
$this->Flash->error(__('The subject could not be saved. Please, try again.'));
}
}
}
}
答案 0 :(得分:1)
与您的Ajax无关。它在错误消息中告诉您正确的信息。您正在尝试从create
对象调用null
函数。在这种情况下,$this->Subject
。
您拥有$this->uses
类别和课程模型,但没有主题。您既可以将其添加到此控制器使用的列表中,也可以通过现有关联将其与您正在使用的东西进行关联:$this->Course->Subject
。
答案 1 :(得分:0)
请确保所获取的数据正确无误,然后执行以下操作:
$this->Subject->create();
$this->Subject->set(array($this->request->data);
$this->Subject->save();