我有一个调用cakephp控制器方法的Javascript函数:
$.ajax({
type: "POST",
url: 'http://localhost/cakephp/officepersontasks/add',
data: {
company_id: $("#company_id").val(),
person_id: $("#person_id").val(),
task_id: "11"
},
success: function(data) {
alert('Load was performed.'+data);
}
});
在cakeide上,对象$this->request->data
包含已发送的数据,因此$this->OfficePersonTask->save($this->request->data)
会针对OfficePersonTask
模型保存数据。问题是所发送的数据必须被拆分,一些数据将保存在数据库表中,其余数据将保存在第二个表中?这样做的最佳解决方案是什么?如何爆炸$this->request->data
对象?
答案 0 :(得分:3)
像往常一样使用Cake FormHelper创建表单。然后,您将在服务器端代码中执行saveAll
而不是save()
来保存关联模型。
您的javascript应该更改为:
data: $('#myForm').serializeArray(),
答案 1 :(得分:0)
我假设通过拆分对象意味着将对象数据的一部分放在一个数组/对象中,而将另一部分放在另一个数组/对象中。您可以创建一个新的数组/对象,并使用您需要的部分数据填充它。
对于阵列,你可以这样做,
$new_data[] = $data->company_id;
$new_data[] = $data->person_id;
// now, $new_data has the values in an array.
您也可以轻松地为对象轻松完成。
答案 2 :(得分:0)
使用data[modelName][fieldNameInTable]
命名输入字段。
当我说出名字时,我正在谈论输入的名称字段。
然后蛋糕应该直接保存!