## 第一部分,响应及模板渲染
~~~
// 响应get请求 返回字符串类型的路由
Route::get("/no1/test1", function(){
return "这是第一个测试";
});
// 响应post请求 并返回Json数据的路由
Route::post("/no1/test2", function(){
return json_decode(array("msg" => "这是第二个测试"));
});
// 响应get及post请求 并返回字符串的路由
Route::match(["get", "post"], "/no1/test3", function(){
return "这是第三个测试";
});
// 响应所有请求,并通过模板引擎渲染返回html代码的路由
Route::any("/no1/test4", function(){
return view("no1/test4");
});
~~~
其中view函数为模板渲染函数,传入模板路径,返回渲染后的html
## 第二部分,路由参数
~~~
// 匹配并获取参数
Route::get("/no1/test5/name/{name}/age/{age}", function($name, $age){
return "姓名:" . $name . " 年龄:" . $age;
});
// 根据正则表达式匹配路径
Route::get("/no1/test6/age/{age}", function($age){
return "年龄:" . $age;
})->where("age", "\d+");
// 根据正则表达式匹配路径 2
Route::get("/no1/test7/name/{name}/age/{age}", function($name, $age){
return "姓名:" . $name . " 年龄:" . $age;
})->where(["name" => "[iguoji|ijing]+", "age" => "\d+"]);
// 根据路由地址生成Link
Route::get("/no1/test8", function(){
return url("/no1/test8");
});
// 可有可无的参数
Route::get("/no1/test9/{version?}", function($version = "v1"){
return $version;
});
~~~
其中url函数为根据路由生成当前浏览器完整的地址,另外参考资料中有提到,如果在Router之外的地方可以使用Route::input("参数名")获取值,暂无测试。
## 第三部分,全局路由参数限制
~~~
// 根据全局路由设置匹配参数
$router->pattern("id", "\d+");
Route::get("/no1/test10/id/{id}", function($id){
return "编号:".$id;
});
// 根据全局路由设置匹配多个参数、经测试,pattern不支持这种数组类型的参数
/*$router->pattern(["name" => "[iguoji|ijing]+", "age" => "\d+"]);
Route::get("/no1/test11/name/{name}/age/{age}", function($name, $age){
return "姓名:" . $name . " 年龄:" . $age;
});*/
~~~
其中`$router->pattern()`函数是在`Laravel5.0`文档中看到的,在这里可以直接使用,而`Laravel5.1`文档中的使用方式是在`F:\wwwroot\Laravel\wechat\app\Providers\RouteServiceProvider.php`中的`boot(Router $router)`函数里使用。
> F:\wwwroot\Laravel\wechat\app\Providers\RouteServiceProvider.php 文件
~~~
public function boot(Router $router)
{
// 第12次测试
$router->pattern("wechatID", "\d+");
parent::boot($router);
}
~~~
> 路由文件
~~~
// 在RouteServiceProvider.php文件中设置了参数限制
Route::get("/no1/test12/wechatID/{wechatID}", function($wechatID){
return "微信号:" . $wechatID;
});
~~~