路由能够对访问进行优化,所以在各个框架中都会有所涉及。在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"); }]); });