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);