2011-07-26 9 views
5

forループでSave関数を使用してCakePHPで10回保存したいが動作しないようだ。 1つのデータだけを保存します。Cakephpに複数回保存する

1回の呼び出しで複数のデータを保存できるようにするにはどうすればよいですか?以下は

は私のコードは、モデルを呼び出す必要があります...

 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

あなたはユニークなIDを取得するために10回ループし、それらをすべて配列に入れ、saveAllを実行できます –

答えて

16

です::ループの反復ごとに()を作成します。 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' ]); 
    } 
?> 
0

答えは以下の書籍の94ページにあります。出典:バリ、Ahsanul。 CakePHPアプリケーション開発(p。94)。 Packt Publishing。キンドル版。これは、あなたが本の中で見つけることができる、そしてこの質問への答えです:

$this->Book->create(); 
$this->Book->save($this->data); 

注:直前のモデルのsave(呼び出しの をモデルの作成()メソッドを呼び出すことが重要です)新しいレコードを に作成する場合は、

つまり、save()を使用するたびにsave()の前にcreate()を使用する必要があります。

関連する問題