學習使用的是Tp5.1在看別人代碼的時候想很多關于數據庫的操作之間寫到控制器里面了;public function save(){ $data = input('post'); $validate = $this->validate($data,"app\\common\\TestValidate"); $result = (new UserModel)->save($data); if($result){ return $this->success('操作成功'); }else{ return $this->success('操作失敗'); }}但是有人說這樣就沒必要用模型,可以將寫入數據的方法寫到model里面但是寫在model中在控制器調用的時候如何判斷是否寫入成功呢?還有就是將數據驗證是應該寫在控制器還是模型??比如用戶注冊 前端提交->控制器接收請求->模型這之中的數據驗證寫到控制器還是模型如果寫到控制器沒什么疑問,但是如果寫到模型模型中驗證失敗返回false 咋樣返回錯誤信息呢? 難道說模型中返回一個數組['status'=>0,'msg'=>'手機號碼已經被注冊'];之后由控制器接收模型返回的該數組 判斷返回的status嗎?還有順便問問服務層和邏輯層該如何運用??問題有點多,希望大家告知下,多謝!
3 回答

海綿寶寶撒
TA貢獻1809條經驗 獲得超8個贊
如果完全遵循MVC的話,數據處理肯定放model啊,然后controller負責調用model 然后根據model返回的數據來進行邏輯處理,TP中model也是可以validate的。
服務層就是model的一個分層service,一起分出來的還有logic,他們就是對model的一個分離,service負責提供給controller的接口,而logic幫助controller處理邏輯。
比如驗證 可以model只做增刪改查,logic調用model做判斷并且處理邏輯 再返回給service。
就是為了降低方法之間的耦合

qq_花開花謝_0
TA貢獻1835條經驗 獲得超7個贊
1.MVC了解一下!邏輯控制寫在控制器,數據處理寫在model里。
2.控制器調用model中的方法,model的方法執行成功或者失敗返回布爾值,然后控制器根據布爾值來判斷執行的結果。
3.答案1
- 3 回答
- 0 關注
- 1384 瀏覽
添加回答
舉報
0/150
提交
取消