Symfony 4 @Gedmo\SoftDeleteable() 用于具有集合类型表单的表单

Mor*_*eza 8 php mysql soft-delete symfony-forms symfony4

我在 Symfony 框架中使用表单集合软删除项目有问题

我想添加和删除与 Symfony 表单集合相关的项目,如果我从集合中删除项目,此项目必须从关系记录中软删除

用下图你可以想象关系

用 Mysql 工作台生成的产品关系

这是我在 Symfony 表单中的表单集合

Main form
   +
   |
   ProductType+
   |          |
   |          |
   |          PackagesType+
   |                      |
   |                      |
   |                      PackageProductsType
   |
   |
   +
Run Code Online (Sandbox Code Playgroud)

基于表单集合的Symfony示例在前端使用JS添加和删除包产品

我的问题是,当我在实体的注释中package_product通过激活orphanRemoval=true完全删除时,每件事都运行良好,但记录完全删除,我想根据我的建议软删除记录,但是当我在Package实体中更改以下功能时

Main form
   +
   |
   ProductType+
   |          |
   |          |
   |          PackagesType+
   |                      |
   |                      |
   |                      PackageProductsType
   |
   |
   +
Run Code Online (Sandbox Code Playgroud)

始终在顶部功能中,我获取最后一条记录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 |           |
+----+------------+------------+--------+-----------+
Run Code Online (Sandbox Code Playgroud)

PackageProduct 删除第一项后的记录:

+----+------------+------------+--------+-----------+
| ID | Product_id | package_id | amount | deletedAt |
+----+------------+------------+--------+-----------+
|  2 |         11 |          1 |      4 |           |
|  3 |         12 |          1 |      5 |           |
|  4 |         12 |          1 |      5 |2020-1-20..|
+----+------------+------------+--------+-----------+
Run Code Online (Sandbox Code Playgroud)

但我期望PackageProduct删除第一项后的记录:

+----+------------+------------+--------+-----------+
| ID | Product_id | package_id | amount | deletedAt |
+----+------------+------------+--------+-----------+
|  1 |         10 |          1 |      3 |2020-1-20..|
|  2 |         11 |          1 |      4 |           |
|  3 |         12 |          1 |      5 |           |
+----+------------+------------+--------+-----------+
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题以获得预期的结果?