2015-03-25 59 views
2

我擁有客戶端集合,並且每個集合都可以包含許多客戶端。此PHP代碼在每個集合中循環集合和客戶端。並將客戶端保存到數據庫。在Symfony 1.4和Doctrine中插入多行並帶有一個查詢

foreach ($collections as $key => $collection) { 
     foreach ($collection as $k => $client) { 
       $name = $client['name']; 
       //... 
       $clientObj = new Client(); 
       $clientObj->setName($name); 
       //.. 
       $clientObj->save(); 
     } 
} 

我想要做的是將每個集合分組在一個Mysql查詢中,然後轉到下一個集合。由於前面的代碼爲每個客戶端執行一個查詢,而爲了提高性能,我們需要每個集合一個查詢。

我們該怎麼做?

+1

已經嘗試過[此](http://stackoverflow.com/questions/5415725/doctrine-insert-multiple-rows-with-just - 酮保存)? – Matteo 2015-03-25 10:18:27

+1

非常感謝您親愛的參考,我會試試 – SmootQ 2015-03-25 10:20:38

+1

Woow,謝謝親愛的,完美的作品...您可以添加您的評論作爲答案,使其成爲最佳答案! – SmootQ 2015-03-25 10:30:38

回答

1

將每個記錄添加到Doctrine_Collection上的集合對象的調用save()

* Saves all records of this collection and processes the 
* difference of the last snapshot and the current data 

如實施例:

$collection = new Doctrine_Collection('client'); 
$collection->add($client1); 
$collection->add($client2); 
$collection->save(); 
+1

謝謝+1,最佳答案:),它的工作! – SmootQ 2015-03-25 11:14:26