将数据保存到控制器内的不同模型

时间:2014-04-08 20:54:58

标签: cakephp model

我有一个名为ProjectsController的CakePHP控制器(以及它的名为Project的模型)和一个Settings模型。 在ProjectsController中,有一个设置功能,在里面我需要使用Settings模型将数据保存到数据库中。功能如下:

public function settings($pid = null) {
        if($this->request->is('post')) {
            $this->loadModel('Settings');
            $this->request->data['Project']['id'] = $pid;
            if($this->Settings->save($this->request->data)) {
                $this->Session->setFlash(__('Settings successfully set.'));
                $this->redirect(array('controller' => 'projects', 'action' => 'view', $pid));
            } else {
                $this->Session->setFlash(__('Something went wrong! Please try again.'));
                $this->redirect(array('controller' => 'projects', 'action' => 'settings', $pid));
            }
        }
    }

但它总是失败并且返回出错了!
我还要说,Settings模型与Projects

有一个hasOne关系
public $hasOne = 'Project';

这是我第一次尝试达到这样的目的,所以请帮助我告诉我这里做错了什么,为什么这不起作用?

提前谢谢!

1 个答案:

答案 0 :(得分:3)

据我所知,save()调用只会保存模型的数据。 saveAll()调用将保存任何相关(平面,第一级)模型的数据。

您还可以尝试$this->Model->associatedModel->save()