在 doctine 中更新实体一对多关系的最佳方法是什么?例如:我有一个名为 booking 的实体,它映射了一对多的 Guest 实体。
编辑预订时,可以通过添加或删除客人来更改客人的数量。目前,我统计提交的客人数量,如果与当前客人数量不同,我删除预订客人并重新添加新客人!
对我来说,这似乎不正确,我想知道其他人如何处理这个问题。
代码示例:
if (count($collection)) {
$numberGuests = count($this->getEntity()->getGuests());
foreach ($collection as $guest) {
if ($numberGuests != count($guests)) {
// delete guest if the number has changed
$this->getGuestManager()->delete($guest);
} else {
// update entity
$guest->setArrayData(Tools::getData($i, $guests));
}
}
}