我需要將兩個用戶(可以具有「朋友」,「未定義」,「忽略」等值)之間的關係狀態從模型發送到視圖。哪種方式最適合將數據發送到MVC模式的View?
裏面一個模板,我需要爲每一個情況下,鏈接和標籤,是這樣的:
switch ($status) {
case 'friends': 'label' = 'Unfriend', 'link' = 'user_controller/unfriend/'.$id;
case 'undefined': 'label' = 'Add to friends', 'link' = 'user_controller/addfriend/'.$id;
...
}
那麼,我應該這樣做開關 - 一個模型中,然後返回與標籤和鏈接,或數組只需返回一個字符串並在View中創建內容即可。哪種方法更好?
你意識到你正在做的PHP沒有_actually_ MVC模式越好越快。在實際的MVC模式中,視圖通過觀察者模式監聽模型的變化 - 這在PHP情況下是無效的,因爲HTTP是無狀態協議,並且視圖無法從客戶端向服務器偵聽更新。通常,服務器端框架所做的是將「模型」(或「視圖模型」)對象傳遞給它用於執行模板的視圖。在模型方法中,視圖確實可以決定這個邏輯(鏈接到哪個控制器),在vm中,vm是這樣做的 –
在控制器中執行此邏輯也是絕對有可能的 - 不必擔心設計模式或您正在使用的架構模式被稱爲 - 擔心編寫乾淨和可維護的代碼,其中不同組件之間的通信非常清晰,而且誰對第一次讀者顯而易見。 –
當然,我瞭解經典/桌面mvc和網頁之間的差異。我也試圖讓控制器儘可能薄 –