我正在使用PHP Codeigniter atm。我讀過幾篇強調「胖模型和精簡控制器」的文章,並且該模型應該處理所有的業務邏輯,讓直接處理數據庫和控制器的方法直接處理用戶輸入。遵循這些規則,似乎有必要通過控制器間接傳遞$ _POST數組數據。但有時它更直接,幾乎必須直接在控制器中處理用戶數據。關於MVC設計的建議,在控制器中生成視圖
此外,CI的form_validation類不允許您在配置文件的form_validation.php中設置自定義錯誤消息。爲此,我們需要編寫call_back方法。但是,如果我們要爲每個字段編寫call_back方法,控制器將會變得「胖」,並且爲什麼我會首先使用form_validation類。
另一件事是,有時我會發現需要根據數據庫和用戶輸入等來生成內容。但是在控制器中這樣做似乎違背了「邏輯和表示的分離」。例如,CI有一個表格和表格助手,分頁等......這些都是演示文稿。將這些寫入控制器會使控制器再次變得肥胖。所以我想我可能應該爲視圖生成編寫控制器方法,或者我應該編寫一個模型或庫來處理演示文稿?
我很感激一般的MVC方法的一些很好的建議和提示。謝謝。
嗯,事情是,CodeIgniter與MVC沒什麼關係(除了用它作爲營銷工具)。至於「表單驗證」,在適當的MVC設置中,您應該(也將)能夠將表示層與模型層分開。數據來自html表單應該沒關係。驗證規則**是**業務規則的一部分。這就是爲什麼它應該發生在模型層的內部。特別是 - [域對象](http://c2.com/cgi/wiki?DomainObject)。 – 2014-09-27 19:56:43