thinkphp5开发restful-api接口 学习笔记一

视频学习地址:

http://study.163.com/course/courseMain.htm?courseId=1004171002

源码和文档(如果满意,欢迎 star):

https://github.com/RiversCoder/tp5-api

百度云盘链接:https://pan.baidu.com/s/1jMNumEOJ2yO5kSKYfnGjOw 密码:l8qr

看云文档:
学习笔记:
sublime 3下载地址:
 
thinkphp的报错信息只支持,string,数字,空,回调函数,不支持数组
 如果要返回数组格式的数据,需要用json或者json_encode();一下
 1 <?php
 2 namespace app\index\controller;
 3 class Index {
 4     public function index() {
 5         $data = array(
 6             'name' => 'red_panda',
 7             'address' => 'China',
 8         );
 9         $code = 200;
10         $msg = 'ok';
11         return json_encode(['data' => $data, 'code' => $code, 'message' => $msg]);
12     }
13 }

 config.php里可以改输出的类型(这样就可以直接return array了).

'default_return_type'=>'json' // html/json/xml/


 获取参数:

 1 <?php
 2 namespace app\index\controller;
 3 use \think\Request;
 4 class Index {
 5     public function index() {
 6         $request = Request::instance();
 7         echo '请求方法:' . $request->method() . '<br/>';
 8         echo '访问地址:' . $request->ip() . '<br/>';
 9         echo '请求参数:';
10         dump($request->param());
11         echo '请求参数:仅包含name,sex';
12         dump($request->only(['name', 'sex']));
13         echo '请求参数:排除name,sex';
14         dump($request->except(['name', 'sex']));
15     }
16 }

效果:

 postman post请求方法:

返回参数:

thinkphp5里判断请求方法:

 1 <?php
 2 namespace app\index\controller;
 3 use \think\Request;
 4 class Test {
 5     public function index() {
 6         $request = Request::instance();
 7          // 是否为 GET 请求
 8         if (Request::instance()->isGet()) echo "当前为 GET 请求";
 9         // 是否为 POST 请求
10         if (Request::instance()->isPost()) echo "当前为 POST 请求";
11         // 是否为 PUT 请求
12         if (Request::instance()->isPut()) echo "当前为 PUT 请求";
13         // 是否为 DELETE 请求
14         if (Request::instance()->isDelete()) echo "当前为 DELETE 请求";
15         // 是否为 Patch 请求
16         if (Request::instance()->isPatch()) echo "当前为 PATCH 请求";
17     }
18 }

 参数验证规则:

 1 <?php
 2 namespace app\index\controller;
 3 use \think\Validate;
 4 class Test {
 5     public function index() {
 6         $rule = [
 7             //utf-8 一个字符对应3个字母/数字 对应2个汉字(所以这里可以入3个字母/数字或者一个汉字)
 8             'name' => 'require|max:3',
 9             'age' => 'number|between:1,120',
10             'email' => 'email',
11         ];
12         $msg = [
13             'name.require' => '名称必须',
14             'name.max' => '名称最多不能超过3个字符',
15             'age.number' => '年龄必须是数字',
16             'age.between' => '年龄只能在1-120之间',
17             'email' => '邮箱格式错误',
18         ];
19         $data = input('post.');
20         $validate = new Validate($rule, $msg);
21         $result = $validate->check($data);
22         if (!$result) {
23             dump($validate->getError());
24         }
25     }
26 }

效果:

 **连接数据库**

/* 数据库设置 */
'database' => [
    // 数据库类型
    'type'        => 'mysql',
    // 服务器地址
    'hostname'    => '127.0.0.1',
    // 数据库名
    'database'    => 'thinkphp',
    // 数据库用户名
    'username'    => 'root',
    // 数据库密码
    'password'    => '',
    // 数据库连接端口
    'hostport'    => '',
    // 数据库连接参数
    'params'      => [],
    // 数据库编码默认采用utf8
    'charset'     => 'utf8',
    // 数据库表前缀
    'prefix'      => '',
    // 数据库调试模式
    'debug'       => false,
],
 **原生sql语句查询**
 1 <?php
 2 namespace app\index\controller;
 3 use think\Db;
 4 class Index
 5 {
 6     public function index()
 7     {
 8         $res = Db::query('select version()');
 9         return $res;
10     }
11 }

 设置路由:

 

 

posted @ 2018-08-16 13:24  HaimaBlog  阅读(16143)  评论(0编辑  收藏  举报