自己寫(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 回答
- 3 回答
- 0 關(guān)注
- 1280 瀏覽
添加回答
舉報(bào)
0/150
提交
取消