2016-05-04 47 views
1

我無法在控制器內持久保存多個實體。我只能保存最後一個。在symfony2中保留多個實體

我的代碼:

$product = new Product(); 
$names = ['yellow', 'blue', 'red']; // save these to the table 

foreach ($name as $name) { 
    $product->setName($name); 
    $em->persist($product); 
    // $em->flush(); // doesn't work either 
} 

$em->flush(); 

我使用Symfony的2.7

回答

3

你必須創建循環內的新產品。 現在它只需要1個產品,並且不斷更新。

$names = ['yellow', 'blue', 'red']; // save these to the table 

foreach ($names as $name) { 
    $product = new Product(); 
    $product->setName($name); 
    $em->persist($product); 
} 

$em->flush(); 
+1

喔,謝謝,現在的作品...很簡單:) –

0

您只創建一個對象產品。 顯然,只有一個對象會被保存到數據庫中。 同樣在頂部,變量名爲$Product(大寫字母P),而在循環中則稱爲$product

試試這個:

$NameList = array("yellow","blue","red"); // save these to the table 

foreach($NameList as $name){ 
    $product = new Product(); 
    $product->setName($name); 
    $em->persist($Product); 
    //$em->flush(); // doesnot work either 
} 

$em->flush();