gpt4 book ai didi

symfony - 基于另一个(postPersist)Doctrine2的创建创建一个新实体

转载 作者:行者123 更新时间:2023-12-02 12:55:26 30 4
gpt4 key购买 nike

我正在尝试在创建另一个实体的基础上创建一个新实体。示例:我有一段关系

Sale <-- 1:M --> Payment

现在,当我坚持销售时,您必须创建一个初始付款,但我不知 Prop 体该怎么做。

我尝试过:

  1. 使用@ORM\HasLifecycleCallbacks()@ORM\prePersist@ORM\postPersist,但这些方法不会获取参数并且我无法保留实体付款。我什至尝试将 SalePayment 关联起来(在 prePersist 方法 $ payment->setSale($this) 中),希望 EntityManager 能够持久付款给我。 info from here
  2. 我尝试创建一个监听器 ( guided from here ),但它不起作用,监听器在任何时候都无法运行
  3. 在我的 SaleController::createAction() 中执行此操作,这种方式显然很简单并且有效,但这并不优雅,也违背了我的应用程序的良好设计,此操作是一部分业务逻辑并在各个部分重复

最佳答案

在我看来,您列出的 3 个解决方案中,有 3 个仍然是错误最少的。它很简单,不太复杂,并且以后很容易重构。

但如果您正在寻找一个干净的解决方案,我认为您需要的是表单处理程序或类似的服务。看看FOSUserBundle one .

基本上,您将创建一个 PaymentManager 类,并在处理所有销售表单内容后,将所有收集到的信息传递给 PaymentManager 并让它处理 Payment 实体的所有创建/持久逻辑。

关于symfony - 基于另一个(postPersist)Doctrine2的创建创建一个新实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8599517/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com