我有一个名为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
public $hasOne = 'Project';
这是我第一次尝试达到这样的目的,所以请帮助我告诉我这里做错了什么,为什么这不起作用?
提前谢谢!
答案 0 :(得分:3)
据我所知,save()
调用只会保存模型的数据。 saveAll()
调用将保存任何相关(平面,第一级)模型的数据。
您还可以尝试$this->Model->associatedModel->save()