1

I have a Javascript function that invoke a cakephp controller method:

$.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);
     }
});

On the cakeside, the object $this->request->data contain sended data, so $this->OfficePersonTask->save($this->request->data) will save data against OfficePersonTask model. The problem is that data sended got to be splitted, some data will be saved inside a DB table, the rest of data will be saved in a second table? What's the best solution to do this? How can I explode $this->request->data object?

4

3 回答 3

3

像往常一样使用蛋糕 FormHelper 创建您的表单。然后,您将在服务器端代码中执行 asaveAll而不是 asave()来保存关联的模型。

然后您的 javascript 应更改为:

data: $('#myForm').serializeArray(),
于 2012-08-06T18:41:24.710 回答
0

我假设通过拆分对象意味着将对象的部分数据放在一个数组/对象中,而将其他部分放在另一个数组/对象中。您可以创建一个新的数组/对象并用您需要的部分数据填充它。

对于数组,您可以这样做,

$new_data[] = $data->company_id;
$new_data[] = $data->person_id;
// now, $new_data has the values in an array.

您也可以轻松地为对象执行此操作。

于 2012-08-06T18:46:58.687 回答
0

用 . 命名您的输入字段data[modelName][fieldNameInTable]。当我说名称时,我指的是输入的名称字段。那么蛋糕应该直接保存!

于 2012-08-06T18:49:38.970 回答