路由简介
简单的说就是将用户的请求转发给相应的程序进行处理;
作用就是建立url和程序之间的映射。
请求类型:get、post、put、patch、delete
基本路由
Route::get('/',function(){
return view('welcome');
});
Route::get('basic1',function(){
return 'Hello World';
});
Route::post('basic2',function(){
return 'basic2'; //post请求无法通过路由进行访问
})
多请求路由
Route::match(['get','post'],'multy1',function(){
return 'multy1';
});
Route::any('multy2',function(){
return 'multy2';
})
路由参数
Route::get('user/{id}',function($id){
return "user-".$id;
});
//路由参数可以是可选的,在后面加一个问号,也可以给一个默认值
Route::get('user/{name?}',function($name= 'liding') {
return 'user-'.$name;
});
//当然,也可以默认为空
Route::get('user/{name?}',function($name = null ){
return 'user-'.$name;
});
//更有兴趣的是,这个参数我们还可以使用正则表达式进行限制
Route::get('user/{name?}',function($name = 'lishuo'){
return 'user-'.$name;
})->where('name','[A-Za-z]+'); //where 后面跟需要验证的字段名
//来看一个比较完整的实例
Route::get('user/{id}/{name?}',function($id,$name='madman'){
return 'user-'.$id.$name;
})->where([
'id' => '[0-9]+',
'name' => '[A-Za-z]+'
]);
路由别名
Route::get('user/member-center',['as'=>'center',function(
return 'member-center';
)]);
//别名的优点在于:可以在控制器或者路由或者模板中,用route()函数来生成别名对应的url
Route::get('user/member-center',['as'=>'center',function(
return route('center');
)]);
路由群组
Route::group(['prefix' = > 'member'],function(){
Route::get('user/{id}',function($id){
return "user-".$id;
});
Route::get('user/{name?}',function($name= 'liding') {
return 'user-'.$name;
});
});
路由中输出视图
Route::get('hello',function(){
return view('welcome');
});
//其实在实际的开发中,与后台交互的页面很少直接在路由中返回视图;
//我们通过路由绑定controller中的方法进行数据的交互。