CakePHP 2 从数组中插入多行
CakePHP 2 Insert Multiple Rows from Array
如何在 CakePHP 中从数组插入多行?这是我的 print_r($_POST)
Array (
[category] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
[surface_area] => Array
(
[0] => 1
[1] => 2
[2] => 24
[3] => 342
[4] => 235
)
[tree_area] => Array
(
[0] => 252
[1] => 254
[2] => 252
[3] => 635
[4] => 457
)
[no_of_tree] => Array
(
[0] => 457
[1] => 658
[2] => 3563
[3] => 6357
[4] => 363
)
)
我试过使用 foreach 和 for 循环,但没有用。任何的想法?
谢谢
如果您想保存数组的内容
你可以通过
$data=$this->request->data;
saveAll($data, array('deep' => true));
我尝试使用 for 循环,但它必须从 0 偏移量开始。如何保持简单?
for($i = 0; $i < count($this->request->data['category']); $i++) {
$this->Model->create();
$data[0] = array(
'project_id' => $id,
'criteria_form_list_id' => $category[0]['category'],
'surface_area' => $surface_area[0]['surface_area'],
'cover_by_tree' => $tree_area[0]['tree_area'],
'no_of_tree' => $no_of_tree[0]['no_of_tree']
);
$data[$i] = array(
'project_id' => $id,
'criteria_form_list_id' => $category[$i]['category'],
'surface_area' => $surface_area[$i]['surface_area'],
'cover_by_tree' => $tree_area[$i]['tree_area'],
'no_of_tree' => $no_of_tree[$i]['no_of_tree']
);
$this->Model->save($data);
}
您需要按照以下格式排列您的数据
$dataToSave=数组(
[0]=>array(
[ModelName]=>array(
field1=>value1,
field2=>value2
)
)
[1]=>array(
[ModelName]=>array(
field1=>value3,
field2=>value4
)
)
[2]=>array(
[ModelName]=>array(
field1=>value5,
field2=>value6
)
)
[3]=>array(
[ModelName]=>array(
field1=>value7,
field2=>value8
)
)
)
此后在保存数据时使用
$this->ModelName->saveall($dataToSave);
如何在 CakePHP 中从数组插入多行?这是我的 print_r($_POST)
Array (
[category] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
[surface_area] => Array
(
[0] => 1
[1] => 2
[2] => 24
[3] => 342
[4] => 235
)
[tree_area] => Array
(
[0] => 252
[1] => 254
[2] => 252
[3] => 635
[4] => 457
)
[no_of_tree] => Array
(
[0] => 457
[1] => 658
[2] => 3563
[3] => 6357
[4] => 363
)
)
我试过使用 foreach 和 for 循环,但没有用。任何的想法? 谢谢
如果您想保存数组的内容
你可以通过
$data=$this->request->data;
saveAll($data, array('deep' => true));
我尝试使用 for 循环,但它必须从 0 偏移量开始。如何保持简单?
for($i = 0; $i < count($this->request->data['category']); $i++) {
$this->Model->create();
$data[0] = array(
'project_id' => $id,
'criteria_form_list_id' => $category[0]['category'],
'surface_area' => $surface_area[0]['surface_area'],
'cover_by_tree' => $tree_area[0]['tree_area'],
'no_of_tree' => $no_of_tree[0]['no_of_tree']
);
$data[$i] = array(
'project_id' => $id,
'criteria_form_list_id' => $category[$i]['category'],
'surface_area' => $surface_area[$i]['surface_area'],
'cover_by_tree' => $tree_area[$i]['tree_area'],
'no_of_tree' => $no_of_tree[$i]['no_of_tree']
);
$this->Model->save($data);
}
您需要按照以下格式排列您的数据
$dataToSave=数组(
[0]=>array(
[ModelName]=>array(
field1=>value1,
field2=>value2
)
)
[1]=>array(
[ModelName]=>array(
field1=>value3,
field2=>value4
)
)
[2]=>array(
[ModelName]=>array(
field1=>value5,
field2=>value6
)
)
[3]=>array(
[ModelName]=>array(
field1=>value7,
field2=>value8
)
)
)
此后在保存数据时使用
$this->ModelName->saveall($dataToSave);