thinkphp5开发教程(thinkPHP5框架接口写法简单示例)
类别:编程学习 浏览量:405
时间:2022-01-15 01:35:22 thinkphp5开发教程
thinkPHP5框架接口写法简单示例本文实例讲述了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框架的PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/qq_32562501/article/details/82684030
您可能感兴趣
- 阿里云网站cdn加速(阿里云CDN刷新链接接口实践)
- laravel接口请求模拟(Laravel 类和接口注入相关的代码)
- django整合前端流程日志权限(使用Django开发简单接口实现文章增删改查)
- dedecms如何写接口(dede的sql语句调用方法使用示例)
- 什么是接口隔离原则
- php中抽象类和接口的区别(PHP抽象类和接口用法实例详解)
- django框架教程第100讲(详解Django+Vue+Docker搭建接口测试平台实战)
- python 调钉钉接口(python3实现钉钉消息推送的方法示例)
- html5 web技术(html5视频常用API接口的实战示例)
- laravel连接多个数据库(laravel实现一个上传图片的接口,并建立软链接,访问图片的方法)
- djangoapi接口开发(Django使用AJAX调用自己写的API接口的方法)
- python怎么测试api接口(python接口自动化测试之接口数据依赖的实现方法)
- django框架详解(Django如何开发简单的查询接口详解)
- vue项目有element插件(Vue Element前端应用开发之前端API接口的封装)
- python统一支付接口(Python实现的微信支付方式总结三种方式)
- h5支付接口第四方支付(h5移动端调用支付宝、微信支付的实现)
- 吐槽完《弧光大作战》之后,我们和设计师聊了聊魔兽首款手游的立项初衷和未来(吐槽完弧光大作战之后)
- 魔兽争霸3自定义战役少年杰雷 2(魔兽争霸3自定义战役少年杰雷)
- 今日菜价 芥兰涨幅最高 1.33 ,花菜降幅最高 3.10(今日菜价芥兰涨幅最高)
- 今日菜价 椰菜涨幅最高 3.25 ,水空心菜降幅最高 2.58(今日菜价椰菜涨幅最高)
- 今日菜价 红三鱼涨幅最高 4.41 ,黄鳝降幅最高 5.06(红三鱼涨幅最高)
- 今日菜价 西生菜涨幅最高 6.19 ,生菜降幅最高 5.38(西生菜涨幅最高)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9