我對CodeIgniter和MVC哲學比較陌生,所以我在做任何壞習慣之前都試圖澄清這一點。模型或CodeIgniter控制器中的邏輯?
我有一個註冊的應用程序。用戶。目前,該流動是這樣的:
- 用戶導航到「somewebpage /註冊」,它加載控制器
- 控制器檢查以查看是否在表單提交的「註冊」函數 - 如果它是不是,向他們展示形式,否則,調用「用戶」模型的「註冊」功能
- 用戶模型檢查以查看用戶名是否已被佔用。如果是,它會返回一個錯誤代碼(定義爲PHP常量)。
- 如果用戶名尚未被使用,模型將註冊用戶並返回TRUE。
- 控制器收集模型返回的「註冊」功能,並根據錯誤代碼顯示錯誤頁面,成功頁面或數據庫失敗頁面。
正如您所看到的,我嘗試將盡可能多的邏輯移入模型中。我無法重新定位的唯一邏輯就是表單驗證,因爲CodeIgniter似乎強迫你把它放到Controller中。 (除非有人知道解決這個問題的方法)
這是我應該用CodeIgniter開發還是一般用MVC開發的方式?
在此先感謝您的幫助。
MVC中的模型假設它具有邏輯,因爲它是領域模型,但沒有什麼能夠阻止你將它分解成不同的層。 – airmanx86 2010-07-07 14:57:51
謝謝你的幫助,musoNic80和airmanx86!你們澄清了這個令人困惑的問題。 我越來越擔心 - 沒有人回答。 ;) 謝謝! – 2010-07-10 06:54:30
@ airmanx86,musoNic80我發現你的討論很有用,但是我有一個問題。根據從控制器傳遞給模型的數據,在模型中應用邏輯是一種好方法嗎?就像如果一個變量是空的,我想運行這個查詢,否則這個查詢。這是一個好方法嗎? – 2017-03-02 08:29:15