簡體   English   中英

從Twig中的對象讀取時添加回調

[英]Adding a callback when reading from an object in Twig

假設我有一個稱為Entity的基本實體,該Entity已映射到數據庫表。 該實體具有兩個屬性: propertyApropertyB

盡管我們可以在這些屬性中存儲所需的內容,但該實體的一個特殊性是,當在帶有entity.propertyB的Twig模板上使用propertyB的值時,我們希望系統地將該值截斷為100個字符。

現在,這可以通過多種方式完全實現:

  • 直接在getPropertyB()方法中截斷該值;
  • 注冊一個Twig擴展名並創建一個專用過濾器;
  • 在實體上添加生命周期回調,以在實際創建對象之前截斷該值。

由於這嚴格是顯示規則,而不是我們實體的業務規則,因此第二種解決方案似乎是最好的恕我直言。 但是,這要求我們每次需要在模板中使用propertyB的值時都應用過濾器。 如果不知情的開發人員過來,則該值可能不會被截斷。

所以我的問題是:是否有一種方法可以注冊某種回調,嚴格限制在包裝我們實體的視圖模型中,這將允許我們在其某些屬性上即時應用一些過濾器?

由於您永遠不需要訪問超過100個字符的內容,因此可以在其設置程序中截斷該屬性。 這實際上並不會污染實體代碼,因為這是其固有的邏輯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM