本文实例讲述了thinkPHP5框架接口写法。分享给大家供大家参考,具体如下:
控制器
/** * 添加收货地址 */ public function addAddress(){ $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
<?php namespace app\\index\\model; use \\think\\Model; use app\\index\\model\\Attachment as AttachmentModel; class Address extends Model { /** * 获取一个基本信息 * @param int $id 行政id * @return array|bool|false|\\PDOStatement|string|Model */ public function adcodeGetOne($id = 0){ if(empty($id)) return false; $map[\'adcode\'] = $id; return \\think\\Db::name(\'district\')->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 详细地址 */ public function addAddress($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()) return true; $data[\'addtime\'] =$time; $data[\'update_time\'] =$time; if($this->insert($data)){ return true; }else{ return false; } } }
Response
<?php namespace Org; class Response { const JSON = \"json\"; /** * 按综合方式输出通信数据 * @param integer $code 状态码 * @param string $message 提示信息 * @param array $data 数据 * @param string $type 数据类型 * return string */ public static function show($code, $message = \'\', $data = array(), $type = self::JSON) { if(!is_numeric($code)) { return \'\'; } // $type = \'json\'; isset($_GET[\'format\']) ? $_GET[\'format\'] : self::JSON; $result = array( \'code\' => $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方式输出通信数据 * @param integer $code 状态码 * @param string $message 提示信息 * @param array $data 数据 * return string */ public static function json($code, $message = \'\', $data = array()) { if(!is_numeric($code)) { return \'\'; } $result = array( \'code\' => $code, \'message\' => urlencode($message), \'data\' => $data ); echo urldecode(json_encode($result,JSON_UNESCAPED_UNICODE)); exit; } /** * 按xml方式输出通信数据 * @param integer $code 状态码 * @param string $message 提示信息 * @param array $data 数据 * return string */ public static function xmlEncode($code, $message, $data = array()) { if(!is_numeric($code)) { return \'\'; } $result = array( \'code\' => $code, \'message\' => $message, \'data\' => $data, ); header(\"Content-Type:text/xml\"); $xml = \"<?xml version=\'1.0\' encoding=\'UTF-8\'?>\\n\"; $xml .= \"<root>\\n\"; $xml .= self::xmlToEncode($result); $xml .= \"</root>\"; echo $xml; } public static function xmlToEncode($data) { $xml = $attr = \"\"; foreach($data as $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)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
© 版权声明
THE END
暂无评论内容