TP5中,路由是在route.php中来定义路由规则的,根目录部分可由apache和系统host文件来定义,之后的模块/控制器/方法就可由路由来定义,规则之一就是
use think\Route;
Route::rule('hello','sample/Test/hello');
其整体参数格式为
Route::rule('路由表达式','路由地址','请求类型','路由参数(数组)','变量规则(数组)');
其中,路由参数有是否允许是https访问,具体参数可查看文档。关于请求类型,可通过postman来模拟post或put等其他请求。
关于url中路由传参,有2种,第一种是路由表达式/id,这种就需要在上面路由表达式/:id这样定义一下,第2种就是路由表达式?name=xxx这样。(我的理解)
获取参数方法
1.hello($id,$name) 方法中直接传参,会自动获取值,可直接echo $id,echo $name。
在用post方法请求时,Postman中有个body,通过form-data来提交参数,如可添加age和age值
2.通过Request类来获取,这样,hello()方法中就不用传参
use think\Request;
public function hello(){
$id=Request::instance()->param('id');
$name=Request::instance()->param('name');
} //通过Request类,instance()(初始化)之后,调用param方法来获取,初始化的过程就是生成一个Request实例(对象)。
想一次性获取所有传递过来的变量
$all=Request::instance()->param();
var_dump($all);
除了param()方法外,还有get(),用来获取?后的变量,route()获取定义的变量,post()获取form-data(即post传的)传的变量。
3 助手函数
$all=input('param.');获取所有变量
$id=input('param.id'),获取单个
小知识点:依赖注入
hello(Request $request){
$id=$request->param('id');
}