2016-05-04 1 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

オブジェクト製品は1つだけ作成されています。明らかに、1つのオブジェクトだけがデータベースに永続化されます。 また、変数の先頭は$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(); 
関連する問題