在这里先说一下URL模式,通俗的说就是就是定义访问路径,URL路径模式有三种
手册中有介绍,大佬都是第三种,看个人喜好
这是具体配置文件。
现在说说怎么定义路由,上一文章只是为了缩短访问路径而写的一个简单路由这里给大家写详细的
<?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK ] // +---------------------------------------------------------------------- // | Copyright (c) 2006~2016 http://thinkphp.cn All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) // +---------------------------------------------------------------------- // | Author: liu21st <liu21st@gmail.com> // +---------------------------------------------------------------------- use think\Route; Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)'); //GET,POST,DELETE,PUT,* 这几个是请求类型,用postman测试,默认是*所有的都可以 //Route::rule('hello','sample/test/hello','GET');只能使用GET方式访问 //Route::rule('hello','sample/test/hello','GET',['https'=>false]);开启关闭数组路由参数,手册有很多参数配置 //Route::rule('hello','sample/test/hello','GET|POST',['https'=>false]);允许两个请求类型 post和get //Route::post('hello','sample/test/hello');指定post方式 //Route::get('hello','sample/test/hello');指定get方式 //Route::any('hello','sample/test/hello');any就是*所有的 //路由的定义 up //Route::get('hello/:id','sample/test/hello');//定义参数 传参 第一个写法 第二个就是在z.cn/hello/123?name=aqi Route::post('hello/:id','sample/test/hello');//post传参 参数定义雷同get 第三个变量在postman中body中key和value中写 //?变量名+变量值 这个参数定义方式不需要在这里定义,直接在url后定义这是详细的配置方式,建议大家一个一个试一下,推荐测试工具 postman 免费。
获取请求参数的方法在这里分为三种,个人理解,不喜勿喷。
第一种:
Route::get('hello/:id','sample/test/hello');这里定义的路由是用get方式传递参数,id就是咱们定义的参数,,这里定义一个参数
public function hello($id,$name){在控制器中我们选择两个参数,这里都是通过url来传递参数echo $id; echo '|'; echo $name;}
通过url传递参数,这样就可以显示出来了,用postman测试post方式也是ok的。ps:路由那传递方式要换成post,
ok,来看第二种
use Think\Request;//第二种获取参数 class Test { public function hello(){这里代码中写的够直接够粗暴了,直接调用param方法,我们就不多解释了,直接接受之后打印就可以了。TP5接收单一变量的写法param获取所有变量基本等同于3.2 I 方法 // $id = Request::instance()->param('id'); // $name = Request::instance()->param('name'); // $age = Request::instance()->param('age'); // 接受所有变量 // post/get/route也可以指定接收变量POST('ID') // $age = Request::instance()->param('');接收所有变量 // $all = Request::instance()->route(); 获取url的参数变量获取id z.cn/hello/123 // $all = Request::instance()->get();获取get传递参数?后面的,z.cn/hello?name= // $all = Request::instance()->post();获取post传递参数 // $all = Request::instance()->route();} }
现在看第三种,第三种也是tp5的方法但是比较简洁
获取所有变量便捷方法 第三种获取参数 // $all = input('param.');所有变量 // $all = input('param.name');单个变量 // $all = input('post.age');指定方式获取变量 post/get/直接调用input,这个不管你什么方式传递,post get啊都直接接收。
今天到这.....