首页 > 解决方案 > 当子实体保存在数据库上时更新 Symfony 父实体时间戳字段

问题描述

我正在使用两个实体,一个购物车和购物车的行。

他们都使用了 Doctrine 的可时间戳行为。关键是当我从 CartLine 实体中添加或删除单位时,我需要 Cart 更改 updatedAt 字段。目前,仅当我在购物车中添加或删除一行时才会更新。

类推车:

class Cart {
...
    /**
     * @ORM\OneToMany(
         targetEntity="CartLine", 
         mappedBy="cart", 
         cascade={"all"}, 
         orphanRemoval=true
       )
     * @ORM\OrderBy({"free" = "ASC", "id" = "ASC"})
     */
    protected $lines;

类 CartLine:

class CartLine {
    ....
    /**
     * @ORM\ManyToOne(
         targetEntity="Cart", 
         inversedBy="lines",
         cascade={"all"}
       )
     * @ORM\JoinColumn(
         name="cart_id", 
         referencedColumnName="id"
        )
     */
    protected $cart;

有什么想法吗?

标签: phpsymfonydoctrine

解决方案


您可以在 CartLine 和 PostPersist 上使用事件列表器更新您的购物车


推荐阅读