1
我們不僅可以在實體而且在形式使用繼承,我設計了以下結構:Symfony2的繼承
實體
- 類人
- 教授級擴展人
- 班級學生延伸人
FormTypes
- 類PersonType
- 類ProfessorType延伸PersonType
- 類StudentType延伸PersonType
現在,我的問題是在控制器中。我不知道我是否應該爲所有子實體使用人員控制器,或者是否應該爲每個子類創建一個特定的控制器。
使用通用控制器可以幫助很多實體之間通用的邏輯,而且每次創建新的子類時都不需要添加整個控制器,但另一方面,它很複雜處理每一個的具體數據。例如,如果我加載一個「人」,然後我想編輯或顯示它,我需要知道哪些表單類型和模板與它相對應,但是在這個級別上這是不可能的。我應該使用嵌套的「if」來獲取人員的類,因此創建正確的表單類型和模板(硬編碼)。這不會是「動態的」。
也許我可以解決它使用不同的路線,但我想知道什麼是最好的(或至少是一個好的)解決這個問題?我是否也應該在控制器中使用繼承?怎麼樣?
感謝您的回答@ moonwave99。所以,就我之前描述的結構而言,你會怎麼做才能展示個人資料?您是否會使用名爲「PersonController」的獨特控制器進行名爲「showAction」的操作,並在那裏加載此人並定義TWIG模板,以確定它是教授還是學生?或者你會創建兩個特定的控制器(一個爲學生,另一個爲教授)?什麼時候我需要編輯它? (使用不同的表單類型) – Izzy