TP5中路由与获取请求参数

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');

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容