动态下拉菜单和保存cakephp代码无法一起使用

时间:2018-11-27 19:13:52

标签: cakephp-2.0

我有三个具有类别关联的表“类别”,“课程”和“主题”

  1. 类别有很多课程
  2. 课程属于类别,课程有很多主题
  3. 主题属于课程,主题有很多注释
  4. 注释属于主题

当我尝试保存数据时出现错误 “调用成员函数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.'));
            }
        }
    }
}

2 个答案:

答案 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();