2011-12-14 56 views
2

MVC validation: where to validate?的這個問題中,我同意在提出任何數據庫調用之前驗證發生在模型中的想法。然而,我對這種情況感到困惑:我有這種形式將行ID存儲到會話中,然後將其呈現回瀏覽器。它像一個令牌一樣工作。當表單被提交時,它檢查表單中的ID和會話中的ID是否相同,操作與數據庫根本沒有關係。MVC - php會話驗證

是檢查這個ID的控制器或模型的工作?

+8

控制器。模型應該沒有關於視圖/會話在做什麼的概念。這正是控制器的用途 – 2011-12-14 14:51:05

回答

0

仿MVC:那麼,在控制器中。控制器處理大部分業務和行爲邏輯,而模型處於非活動狀態(不知道它在MVC三元組中使用)還是僅在數據庫存儲的啞接口。

Real MVC:Sesssion數據是業務邏輯。這是應用程序狀態的另一個模型。如果它已經駐留在服務器端會話存儲中,則不是用戶輸入(實際上是用於哪些控制器)。

最後,克服誤稱。 MVC是昔日的流行詞。 (並且在此之前一直被MVP和PAC取代)。 PHP版本中的變體與MVC無關。無論實施如何,試圖做到「正確」都會失敗。見https://stackoverflow.com/questions/1549857/simple-php-mvc-framework/1549970#1549970

0

控制器或助手,根據類型的驗證, 我認爲