我将来自远程源的一些数据映射到我的entites中。我为此目的使用表格。这是一段代码片段,负责将数据映射到实体:
$i = 0;
$x = 0;
foreach ($bestellerLists[0] as $bestsellerList) {
$List[$i] = new BestsellerList();
foreach ($bestsellerList['books'] as $book) {
$Book = new Book();
$bookForm = $this->bookForm;
$bookForm->setData($Book);
$bookForm->submit($book);
$List[$i]->addBook($Book);
unset($bookForm);
unset($Book);
$x = $x + 1;
}
$i = $i+ 1;
}
我无法解决的问题是,在第一次迭代中,如果内部foreach
循环,一切正常,实体被映射,第一个$Book
被添加到当前$List
。
然而,内循环的第二次交互错误出现:
您无法更改已提交表单的数据。
如您所见,$bookForm
的值已分配$bookForm = $this->bookForm
。在当前迭代结束时我unset
$bookForm
以便在下一次迭代中创建一个新的。
我真的不明白为什么Symfony会抱怨改变提交表单的数据。每次迭代都应使用一个新的空表单。知道我在这里可能缺少什么吗?