cakephp - 在没有循环的单语句中,保存所有数据

  显示原文与译文双语对照的内容
64 1

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


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

时间: 原作者:

150 0

尝试 saveMany 而不是保存


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

原作者:
106 4

CakePHP将为你在 array 上的每个标识保存每个记录。 唯一的要求是使用 array 结构约定,然后使用:


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

...