0

如何在 cakePHP 中保存所有数据。假设我有多个关于单个模型的记录,我希望一次保存所有数据。我的数组是格式的。

Array
(
[Attendance] => Array
    (
        [0] => Array
            (
                [date] => 2013-10-09
                [user_id] => 10
                [attendance] => 1
            )

        [1] => Array
            (
                [date] => 2013-10-09
                [user_id] => 8
                [attendance] => 0
            )
    )
)

这是否可以一次保存所有数据。我尝试使用 saveMany 来做,但没有成功。

我需要循环执行吗

foreach ($result as $data) {
                $this->Attendance->create();
                $this->request->data['Attendance'] = $data;
                $this->Attendance->save($this->request->data);
}
4

2 回答 2

1

尝试saveMany而不是 save

$this->Attendance->saveMany($this->request->data);

数据应采用以下格式:

Array
(
[1] => Array
    (
        [Attendance] => Array
            (
                [field] => value
                [field] => value
            )
    )

[2] => Array
    (
        [Attendance] => Array
            (
                [field_1] => value
                [field_2] => value
            )
    )
)
于 2013-10-09T09:23:10.653 回答
0

CakePHP 将保存数组中每个 id 的每条记录。唯一的要求是使用他们的数组结构约定,然后使用:

    // Check method request
    if ($this->request->is('post')) {
        // Check not empty data
        if (!empty($this->data)) {
            // Save the data
            if ($this-> Attendance->save($this->request->data)) {
                // Set a session flash message and redirect.
                $this->Session->setFlash('Attendance saved.');
                $this->redirect('/Attendances');
            } else {
                $this->Session->setFlash('Error saving the data.');                
            }
        }
    }
于 2013-10-09T11:28:49.853 回答