## 第一部分,響應及模板渲染
~~~
// 響應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;
});
~~~