php中Laravel定义路由

路由能够对访问进行优化,所以在各个框架中都会有所涉及。在Laravel框架中也可以使用路由来进行操作,不过我们要先对路由进行定义。这里整理了两种方法:get方式、info方法。接下来我们就定义路由的方法进行详细的代码讲解,在完成对路由设置的同时,还可以尝试相关的使用。

1.get方式

Route::get('/',function(){
returnview('welcome');
});

好处是把回调的实现和使用场所隔离,这段代码是意思是,当get方式访问根目录时返回welcome视图

2.info方法

Route::get('admin/info','Admin\IndexController@info');

访问http://your-app.dev/admin/info时,调用命名空间Admin下的IndexController控制器里的info方法。这样写是不是麻烦,所以有了路由组,统一指定中间件,前缀和命名空间。

3.使用路由

//在浏览器直接访问,跳转到welcome视图,视图路径在public/resources/views/
Route::get('/',function(){
returnview('welcome');
});

//在浏览器直接访问,返回helloworld
Route::get("route1",function(){
return"helloworld";
});

//因为是post请求,不可以在浏览器地址栏直接访问
Route::post("route2",function(){
return"helloworld";
});

//match:可以定义接收get或post请求
Route::match(['get','post'],"reute3",function(){
return"helloworld";
});

//any:可以接收get和post请求
Route::any("route4",function(){
return"helloworld";
});

//路由接收参数,php中的字符串拼接用"."
Route::get("user1/{id}",function($id){
return"id-->".$id;
});

//在user2/{id?}后面加个问号代表参数不是必要的,可以在function中给个默认值
Route::get("user2/{id?}",function($id=5){
return"id-->".$id;
});

//参数校验,在最后面加上正折表达,这里代表username只能是字母
Route::get("user3/{username}",function($username){
return"username-->".$username;
})->where("username","[A-Za-z]+");

//路由别名,只要在后面加个数组,注意数组第一个元素是"as"=>"center",第二个元素是function
Route::get("user4/mamber-center",["as"=>"center",function(){
//使用routes可以返回对应的路径
returnroute("center");
}]);

//路由群组,加前缀,member.可以通过member/user1访问到第一个,
//通过member/user2访问到第二个
Route::group(["prefix"=>"member"],function(){

Route::get("user1",function(){
return"helloworld";
});

Route::get("user2",["as"=>"group_route",function(){
returnroute("group_route");
}]);

});

发表回复