如何使用带有foreach循环的Symfony formbuilder存储内容?

时间:2019-03-27 10:46:21

标签: php symfony doctrine-orm

这是我的数组$dataRep

array:4 [▼
  0 => Fields {#7051 ▶}
  1 => Fields {#7328 ▶}
  2 => Fields {#7334 ▶}
  3 => Fields {#7340 ▶}
]

我喜欢使用Symfony formbuilder在数据库中存储数据:

$dataEntity= new Data::class();

foreach ($dataRep as $dataField) {
    $dataEntity->setContent("something");
}
$this->em->persist($dataEntity);
$this->em->flush();

但是数据库中仅存储一个条目,而不是预期的4个条目。

2 个答案:

答案 0 :(得分:4)

将代码移入循环,使其在每次迭代中运行:

foreach ($dataRep as $dataField) {
    $dataEntity = new Data();

    $dataEntity->setContent("something");
    $this->em->persist($dataEntity);
}

$this->em->flush();

注意:您还遇到了我刚刚注意到的语法错误(new Data::class())。

答案 1 :(得分:2)

您正在重置同一数据类上的内容,然后将其存储。 仅介绍整个过程:

foreach ($dataRep as $dataField) {
    $dataEntity = new Data();
    $dataEntity->setContent("something");
    $this->em->persist($dataEntity);
}
$this->em->flush();