在Cakephp中保存多次

时间:2011-07-26 20:56:49

标签: php cakephp

我想在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']);
            }

2 个答案:

答案 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()。