У меня проблема с программным удалением элемента с коллекцией форм в Symfony framework
Я хочу добавить и удалить элементы, связанные с Symfony коллекцией форм. Если я удаляю элемент из коллекции, этот элемент должен быть программным удалено из записей отношений
с изображением ниже, вы можете представить себе отношения
Это мои коллекции форм в Symfony формах
Main form
+
|
ProductType+
| |
| |
| PackagesType+
| |
| |
| PackageProductsType
|
|
+
Пакетные продукты добавляются и удаляются с помощью JS во внешнем интерфейсе на основе Symfony примера для коллекций форм
Моя проблема заключается в полном удалении из package_product
с активацией orphanRemoval = true в аннотации объекта все работает хорошо, но запись полностью удаляется, и я хочу, чтобы запись мягко удалялась на основе моего предложения, но когда я изменяю ниже функцию в Package
Entity
public function removePackageProduct(PackageProduct $packageProduct): self
{
if ($this->packageProducts->contains($packageProduct)) {
$this->packageProducts->removeElement($packageProduct);
// set the owning side to null (unless already changed)
if ($packageProduct->getPackage() === $this) {
$packageProduct->setPackage(null);
}
}
return $this;
}
всегда в верхней функции Я получаю последнюю запись в packageProducts
, и когда я удаляю эту строку $packageProduct->setPackage(null);
, чтобы отключить потерю данных в записи и заменить ее на $packageProduct->setDeletedAt(new \Datetime());
, чтобы установить удаленный элемент , В сохраненных записях удаленная запись удаляется из базы данных и добавляется новая запись, заполненная данными последней записи и удаляемая по дате.
Например:
PackageProduct
записей перед удалением первого элемента:
+----+------------+------------+--------+-----------+
| ID | Product_id | package_id | amount | deletedAt |
+----+------------+------------+--------+-----------+
| 1 | 10 | 1 | 3 | |
| 2 | 11 | 1 | 4 | |
| 3 | 12 | 1 | 5 | |
+----+------------+------------+--------+-----------+
PackageProduct
записей после удаления первого элемента:
+----+------------+------------+--------+-----------+
| ID | Product_id | package_id | amount | deletedAt |
+----+------------+------------+--------+-----------+
| 2 | 11 | 1 | 4 | |
| 3 | 12 | 1 | 5 | |
| 4 | 12 | 1 | 5 |2020-1-20..|
+----+------------+------------+--------+-----------+
Но я ожидал PackageProduct
записей после удаления первого элемента:
+----+------------+------------+--------+-----------+
| ID | Product_id | package_id | amount | deletedAt |
+----+------------+------------+--------+-----------+
| 1 | 10 | 1 | 3 |2020-1-20..|
| 2 | 11 | 1 | 4 | |
| 3 | 12 | 1 | 5 | |
+----+------------+------------+--------+-----------+
Как это исправить получить ожидаемый результат?