thinkPHP5框架接口写法简单示例
本文实例讲述了thinkPHP5框架接口写法。分享给大家供大家参考,具体如下:
控制器
/**
*添加收货地址
*/
publicfunctionaddAddress(){
$post=$this->request->post();
//验证唯一规则:表名,字段名,排除主键值,主键名
$validate=new\think\Validate([
['uid','require','用户id不能为空'],
['name','require|max:20','收件人不能为空'],
['mobile','require|length:11','手机号码不能为空'],
['province_id','require','省份不能为空'],
['city_id','require','城市不能为空'],
['district_id','require','县区不能为空'],
['detail','require|max:100','地址详情不能为空'],
],[
'mobile.length'=>'手机号码格式不正确',
'name.max'=>'收件人不能超过20个字符',
'detail.max'=>'地址详情不能超过100个字符',
]);
//验证部分数据合法性
if(!$validate->check($post)){
\Org\Response::show(400,'提交失败:'.$validate->getError());
}
$user_id=$post['uid'];
$name=$post['name'];
$mobile=$post['mobile'];
$province_id=$post['province_id'];
$city_id=$post['city_id'];
$district_id=$post['district_id'];
$detail=$post['detail'];
$is_address=model('address')->addAddress($user_id,$name,$mobile,$province_id,$city_id,$district_id,$detail);
if($is_address){
\Org\Response::show(200,'access!');
}else{
\Org\Response::show(400,'添加失败!');
}
}
model
where($map)->find();
}
/**
*@param$user_id用户id
*@param$name收件人
*@param$mobile收件人手机号
*@param$province_id省行政id
*@param$city_id城市行政id
*@param$district_id县区行政id
*@param$detail详细地址
*/
publicfunctionaddAddress($user_id,$name,$mobile,$province_id,$city_id,$district_id,$detail){
$is_province=$this->adcodeGetOne($province_id);
$is_city=$this->adcodeGetOne($city_id);
$is_district=$this->adcodeGetOne($district_id);
if(empty($is_province))\Org\Response::show(400,'无效省份!');
if(empty($is_city))\Org\Response::show(400,'无效城市!');
if(empty($is_district))\Org\Response::show(400,'无效县区!');
$time=time();
$data['province_id']=$province_id;
$data['province']=$is_province['name'];
$data['city_id']=$city_id;
$data['city']=$is_city['name'];
$data['district_id']=$district_id;
$data['district']=$is_district['name'];
$data['detail']=$detail;
$data['mobile']=$mobile;
$data['name']=$name;
$data['user_id']=$user_id;
$data['is_delete']=0;
if($this->where($data)->field('id')->find())returntrue;
$data['addtime']=$time;
$data['update_time']=$time;
if($this->insert($data)){
returntrue;
}else{
returnfalse;
}
}
}
Response
$code,
'message'=>$message,
'data'=>$data,
);
if($type=='json'){
self::json($code,$message,$data);
exit;
}elseif($type=='array'){
var_dump($result);
}elseif($type=='xml'){
self::xmlEncode($code,$message,$data);
exit;
}else{
//TODO
}
}
/**
*按json方式输出通信数据
*@paraminteger$code状态码
*@paramstring$message提示信息
*@paramarray$data数据
*returnstring
*/
publicstaticfunctionjson($code,$message='',$data=array()){
if(!is_numeric($code)){
return'';
}
$result=array(
'code'=>$code,
'message'=>urlencode($message),
'data'=>$data
);
echourldecode(json_encode($result,JSON_UNESCAPED_UNICODE));
exit;
}
/**
*按xml方式输出通信数据
*@paraminteger$code状态码
*@paramstring$message提示信息
*@paramarray$data数据
*returnstring
*/
publicstaticfunctionxmlEncode($code,$message,$data=array()){
if(!is_numeric($code)){
return'';
}
$result=array(
'code'=>$code,
'message'=>$message,
'data'=>$data,
);
header("Content-Type:text/xml");
$xml="\n";
$xml.="\n";
$xml.=self::xmlToEncode($result);
$xml.=" ";
echo$xml;
}
publicstaticfunctionxmlToEncode($data){
$xml=$attr="";
foreach($dataas$key=>$value){
if(is_numeric($key)){
$attr="id='{$key}'";
$key="item";
}
$xml.="<{$key}{$attr}>";
$xml.=is_array($value)?self::xmlToEncode($value):$value;
$xml.="{$key}>\n";
}
return$xml;
}
}
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《ZendFrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。