第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

TP模型中是返回還是拋出異常

TP模型中是返回還是拋出異常

PHP
搖曳的薔薇 2019-03-16 23:00:19
自己寫(xiě)的在模型中返回一個(gè)數(shù)組由控制器根據(jù)參數(shù)響應(yīng)給視圖,代碼如下 1:瀏覽器post請(qǐng)求控制器;2:控制器實(shí)例化用戶模型3:模型中接受到全部的數(shù)據(jù)存入$Data變量4:利用驗(yàn)證器驗(yàn)證數(shù)據(jù)合法性,如果驗(yàn)證不通過(guò)返回status為:0;并且返回msg:錯(cuò)誤信息5:模型總save新增數(shù)據(jù)6:新增成功返回1:提示新增成功 新增失敗返回0:表示新增失敗: 控制器代碼: //roue:member/index/userAdd public function userAdd(){ $Result = (實(shí)例化會(huì)員模型)->add(); //中間可能還有其他操作 return ajaxReturn($Result['status'],$Result['msg']); } 模型代碼 public function add(){ $Data = input(''); $Validate= new UserAddValidate($Data); if(false === $Result){ //如果嚴(yán)重失敗會(huì)返回false //返回狀態(tài)0,內(nèi)容為:msg return ['status',=>0,'msg'=>$Validate->getError()]; } //執(zhí)行新增 $res = $this->save($Data); if($res){ return ['status'=>1,'msg'=>'添加會(huì)員成功']; }else{ return ['status'=>0,'msg'=>'添加會(huì)員失敗']; } } 這個(gè)是自己琢磨的 但是感覺(jué)好麻煩,每次都要各種的if判斷所以我就去看別人的代碼,看到一個(gè)大神些的利用的是tp5的自定義異常處理類,代碼寫(xiě)法如下 控制器代碼: //roue:member/index/userAdd public function userAdd(){ return (實(shí)例化會(huì)員模型)->add(); } 模型代碼 public function add(){ $Data = input(''); $Validate= new UserAddValidate($Data); if(false === $Result){ throw new HttpException([ 'status' => 0, 'msg' => $Validate->getError(); ]); } $res = $this->save($Data); if($res){ throw new HttpException([ 'status' => 1, 'msg'= > '添加會(huì)員成功', ]); }else{ throw new HttpException([ 'status' => 0, 'msg'= > '添加會(huì)員失敗', ]); } } HttpException 是TP5里面可以自定義的一個(gè)異常處理類 最終結(jié)果就是拋出異常,異常中的內(nèi)容是json后的結(jié)果,感覺(jué)這種相對(duì)來(lái)說(shuō)很好用,但是不知道為什么大多數(shù)人的代碼都沒(méi)用用這種呢?或者還有什么更好的辦法嗎? 以上代碼全是在瀏覽器中手寫(xiě)的,可能會(huì)有一點(diǎn)點(diǎn)的誤差!
查看完整描述

3 回答

?
倚天杖

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊

自己封裝個(gè)返回?cái)?shù)據(jù)的方法

查看完整回答
反對(duì) 回復(fù) 2019-03-18
?
莫回?zé)o

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

自己寫(xiě)個(gè)異常類繼承框架封裝的異常類
https://img1.sycdn.imooc.com//5c8f45cf0001958308000643.jpg
他一般都會(huì)有后置手段去處理,比如我用的laravel
https://img1.sycdn.imooc.com//5c8f45d100016e9508000521.jpg
他繼承了ValidationException,所以會(huì)觸發(fā)
根據(jù)自己的邏輯是跳轉(zhuǎn)還是ajax返回,是彈窗還是什么的
還有,變量通常情況下好像沒(méi)有首字母大寫(xiě)這種寫(xiě)法吧?

查看完整回答
反對(duì) 回復(fù) 2019-03-18
  • 3 回答
  • 0 關(guān)注
  • 1280 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)