2015-05-02 37 views
0

我需要將兩個用戶(可以具有「朋友」,「未定義」,「忽略」等值)之間的關係狀態從模型發送到視圖。哪種方式最適合將數據發送到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中創建內容即可。哪種方法更好?

+1

你意識到你正在做的PHP沒有_actually_ MVC模式越好越快。在實際的MVC模式中,視圖通過觀察者模式監聽模型的變化 - 這在PHP情況下是無效的,因爲HTTP是無狀態協議,並且視圖無法從客戶端向服務器偵聽更新。通常,服務器端框架所做的是將「模型」(或「視圖模型」)對象傳遞給它用於執行模板的視圖。在模型方法中,視圖確實可以決定這個邏輯(鏈接到哪個控制器),在vm中,vm是這樣做的 –

+1

在控制器中執行此邏輯也是絕對有可能的 - 不必擔心設計模式或您正在使用的架構模式被稱爲 - 擔心編寫乾淨和可維護的代碼,其中不同組件之間的通信非常清晰,而且誰對第一次讀者顯而易見。 –

+0

當然,我瞭解經典/桌面mvc和網頁之間的差異。我也試圖讓控制器儘可能薄 –

回答

0

是的,我會去模型層並離開視圖就像模板(因爲使用MVP,MVC的啓發)。引用一個great article

在適當的MVC適應的M包含了所有領域的業務邏輯和模型層主要是由三種類型的製作 - 域對象(業務邏輯),數據映射器(存儲)和服務(其他部分之間的橋樑,通信)

+0

thnx很多,這些文章也真的幫助我與另一個問題 –

+0

@avadakedavra所以,如果你找到這個答案,以滿足您的需求和回答問題,接受它。 – sitilge