2011-07-26 121 views
5

我想在Cakephp中使用Save函數for循環保存10次,但似乎不起作用。它只保存一個數據。在Cakephp中保存多次

我們怎樣才能讓它在一次調用中保存多個數據?

下面是我的代碼...

 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

您可以循環10次以獲取唯一ID,將它們全部放入數組中,然後執行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。 Kindle版。這是你可以在書中找到什麼,回答了這個問題:

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

注:調用模型的建立()方法只是提前 調用模型的保存是很重要的()方法,如果意圖是創建一個 新記錄。

換句話說,每次使用save()時,都需要在save()之前使用create()。