当前位置: 首页 > 后端技术 > PHP

Laravel接收路由参数和查询字符串中的参数

时间:2023-03-30 02:33:44 PHP

Laravel捕获路由参数Laravel允许在控制器方法中捕获路由中定义的参数,如下:路由中定义的参数:Route::get('post/{id}','PostController@content');在控制器方法中捕获路由参数:classPostControllerextendsController{publicfunctioncontent($id){//}}Laravel同时捕获路由参数和查询字符串参数。控制器如何捕获路由中定义的参数并接收它们?url查询字符串中的参数呢,比如请求链接是这样的http://example.com.cn/post/1?from=index参考官网文档DependencyInjection&RouteParameters的解释If您的控制器方法还需要来自路由参数的输入,您应该在其他依赖项之后列出路由参数。也就是说,如果想在controller方法注入依赖时仍然使用路由中的参数,需要在方法依赖之后列出路由中的参数,例如:get('from')}}LaravelCapture多个可选参数此外,我们可以定义多个laravel路由中的可选参数:Route::get('/article/{id}/{source?}/{medium?}/{campaign?}','ArticleController@detail')控制器方法中的可选参数需要定义为默认参数:publicfunctiondetail(Request$request,$id,$source='',$mediun='',$campaign=''){//}这样定义后,路由中的URL可以传入0~3个可选参数,但是mustfollowtheOrder:如果要传递第二个可选参数,那么第一个可选参数必须有。示例URL:http://example.com.cn/article/1/wx/h5?param1=val1¶m2=val2在这个例子中,“wx”将被传递给变量$source,“h5”将被传递给变量$medium