路由文件在routes/web.php
在路由文件web.php中,其已经定义好了一个路由,这个路由称之为“根路由”,一般用于访问网站的首页。
路由的定义格式
Route::请求方式('请求的URL', 匿名函数或控制器响应的方法)
运行结果如下
又比如请求:http://域名/home地址则路由写成:
Route::get('/home',function(){return '您当前访问的是/home地址';});
注意:路由地址中的第一个“/”可以不写(包括“根路由”,也包括后期路由的拆分)。
常见的四个方法:
get方法:表示匹配请求类型为get的请求;
post方法:表示匹配请求类型为post的请求;
macth方法:表示匹配用户指定的几个请求类型(通过第一个参数去指定)的请求;
语法:Route::match([‘get’,’post’,’…’],$url,$calback);
any方法:表示匹配路由所支持的全部请求类型;
如果路由方法与实际的请求类型不一致,则会报错
路由参数其实就是给路由传递参数。
参数分为必选参数和可选参数。
例如:
function aa($a){
}
aa();
---------------------------------------
function aa($a = 0){
}
aa();
必选参数:一旦在路由中定义了,则必须传递,不传递就会报错。
例如:
Route::get(‘home1/{id}’,function($id){
echo ‘输入的id是’ . $id;
});
路由参数的传递通过路由地址中的“{参数名}”的形式来进行传递,该形式是必选参数的形式,可以选的则使用“{参数名?}”。
如果设定了可选路由参数,但是又没有给默认值同时也没传递,则报错:
给路由起名字的语法:
Route::请求类型(路由地址,响应方法) -> name(别名);
例如:给hello的路由起名字“h1”
调用该路由则可以写成:route(‘名字’);例如像刚才的h1,则需要写成route(‘h1’),该方法类似ThinkPHP框架中url方法。
路由数组:
共同点(这个共同点不局限于只是前缀)是,都有/相同/前缀,为了管理方便,可以把他们放到一个路由分组中,这个分组称之为路由群组。
使用prefix属性指定路由前缀,也就是其路由中都具备的相同部分。
语法:Route::group(公共属性键值数组,回调函数); 回调函数中放的剔除公共属性之后的路由
重点:
1、以大局为重,尽量站在全局的角度考虑路由的公共特性。
2、群组里的路由尽量的多一些,不能几个/一两个就整一个群组,没有必要。
案例:编写路由/home/test/test1和/home/test/test2,要求使用路由群组