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
您可能感兴趣
- 支付宝接口中notify_url 与 return_url 的区别
- djangoapi接口开发(Django使用AJAX调用自己写的API接口的方法)
- laravel增删改查接口(laravel-admin 实现给grid的列添加行数序号的方法)
- python微信支付接口(Python提取支付宝和微信支付二维码的示例代码)
- vue 访问后台接口(vue轮询请求解决方案的完整实例)
- C#中抽象类和接口的区别有哪些
- jmeter接口性能测试教程(Xmeter API接口测试工具使用方法解析)
- dedecms如何写接口(dede的sql语句调用方法使用示例)
- 百度免费翻译接口(基于python实现百度翻译功能)
- vue接收网络请求数据类型配置(vue中对接Graphql接口的实现示例)
- kubernetes exec使用的接口(kubernetes YAML文件的使用)
- thinkphp5开发教程(thinkPHP5框架接口写法简单示例)
- tp5微信支付接口开发案例(PHP实现的微信APP支付功能示例基于TP5框架)
- api接口安全方面的几个建议
- php在if里添加xml代码(PHP创建XML接口示例)
- laravel api接口开发版本控制(Laravel 创建可以传递参数 Console服务的例子)
- 泰国人妖(变性手术生殖器要割掉吗)
- 泰国美女(泰国人妖和女性如何区分)
- 泰国旅游业怎么样(泰国的旅游产业)
- 越南新娘(越南新娘婚介网站)
- 越南新娘(越南新娘骗婚套路流程)
- 菲律宾游学(菲律宾游学中介机构)
热门推荐
- docker容器技术搭建个人博客(使用Portainer部署Docker容器的项目实践)
- dedecms怎样找回登录密码(织梦dedecms 去掉后台登陆验证码的方法)
- vmware vcenter怎么用安全(关于Vmware vcenter未授权任意文件上传漏洞CVE-2021-21972的问题)
- 部署ssis包提示更改保护级别(SSIS 延迟验证方法)
- 自己在做项目过程中的php知识(PHP+Oracle本地开发环境搭建方法详解)
- php框架创建控制器代码(php连接sftp的作用以及实例代码)
- docker 运行容器命令详细参数详解(Docker Hub运行原理及实现过程解析)
- 小程序推荐ui库(AmazeUI 列表的实现示例)
- 循环查询sql server(SQL Server 树形表非循环递归查询的实例详解)
- php入门基本笔记(PHP之认识二关于Traits的用法详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9