我在Symfony中的PreUpdate LifecycleCallbacks中遇到了一些問題。PreUpdate entity symfony LifecycleCallbacks
我有一個與實體產品OneToMany關係的實體用戶。
class User{
/**
* @ORM\OneToMany(targetEntity="Product", mappedBy="formulario", cascade={"persist", "remove"})
*/
private $products;
}
class Product{
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="products")
* @ORM\JoinColumn(name="user", referencedColumnName="id")
*/
private $user;
}
我的問題是當我從用戶添加或刪除產品。當這需要啓動PreUpdate功能來對用戶實體進行一些更改時。但是,在更改用戶的實體產品時,預更新不會觸發。
非常感謝!
對實體用戶$貨號是關聯的反向側,我不知道任何生命週期回調將在產品(擁有方)被修改時在用戶上調用。您可以嘗試在產品實體 – Florent
上進行回調。這樣可行!謝謝! 但是,有什麼方法可以將PreUpdate放入用戶實體嗎?在某種程度上,用戶正在改變添加產品...對於我來說,更容易和有組織地查看用戶實體中的功能。 以您的方式,我必須從預更新產品實體{$ this-> getUser() - > PreUpdateUser()}調用用戶的功能。所以我必須有兩個功能,用戶的預更新和產品的預更新(它調用預更新用戶) 任何方式,非常感謝! – Angel
此外,PreRemove事件也被觸發,但它不會進行更改。 所以,如果我刪除一個產品,PreRemove函數被觸發,但代碼$ this-> getUser() - > setSomeField()不生效,所以產品從數據庫中刪除,但用戶不會更改:(這是因爲我刪除了Product對象,所以用戶的FK中的更改會丟失? – Angel