我想在Cakephp中使用带有for循环的Save函数保存10次,但它似乎不起作用。它只保存一个数据。
我们如何才能在一次通话中保存多个数据?
以下是我的代码......
for($i=0;$i<10;$i++){
$unique_id = $this->_unique($userData['User']['id']); // Unique id with userid as initial prefix
$this->data['Invite'] = array('invited_user' => $userData['User']['id'], 'unique_id' => $unique_id);
$this->User->Invite->save($this->data['Invite']);
}
答案 0 :(得分:16)
您需要为循环的每次迭代调用Model :: create()。 IE:
<?php
for( $i=0; $i<10; $i++ ){
$this->User->Invite->create( );
$unique_id = $this->_unique($userData['User']['id']);
$this->data['Invite'] = array('invited_user' => $userData['User']['id'], 'unique_id' => $unique_id);
$this->User->Invite->save($this->data['Invite']);
unset( $this->data[ 'Invite' ] );
}
?>
答案 1 :(得分:0)
答案在下面的书,第94页:来源:Bari,Ahsanul。 CakePHP应用程序开发(p.94)。 Packt Publishing。 Kindle版。这是你在书中可以找到的,以及这个问题的答案:
$this->Book->create();
$this->Book->save($this->data);
注意:提前调用模型的create()方法很重要 如果打算创建一个,则调用模型的save()方法 新纪录。
换句话说,每次使用save()时都需要在save()之前使用create()。