路由
(1)路由简介
- 简单的说就是将用户的请求转发给相应的程序进行处理
- 作用就是建立url 和程序之间的映射(这里的程序一般指的是处理函数)
- 请求类型get、post、put、patch、delete
(2)基本路由
//get请求
Route::get('example1',function(){
return 'Hello World';
});
这个例子会在使用get请求时返回 Hello World 。
//post请求
Route::post('example2',function(){
return 'example2';
});
这个例子会在使用post请求时返回 example2 。
(3)多请求路由
Route::match(['get','post'],'multy1',function(){
return 'multy1';
})
后面数组里面放的是请求方式,可以是多种请求,访问multy1 都会返回multy1 。
Route::any('multy2',function(){
return 'mylty2';
});
any 相应各种请求方式,所有请求方式请求multy2 都会返回 。
(4)路由参数
//路由参数
Route::get('user/{id}',function($id){
return 'user'.$id;
});
有时候可能需要指定可选的路由参数,这可以通过在参数后面加一个 ? 来实现,这种情况需要给相应的变量指定一个默认值
Route::get('user/{name?}',function($name = null){
return 'user'.$name;
});
Route::get('user/{name?}',function($name = 'sean'){
return 'user'.$name;
});
//加上正则约束
Route::get('user/{name?}',function($name = 'sean'){
return 'user'.$name;
})->where('name','[A-Za-z]+');
//id只能是数字,name只能是字母,不符合负责就报错
Route::get('user/{id}/{name?}',function($name = 'sean'){
return 'user'.$name;
})->where(['id' => '[0-9]+','name' => '[A-Za-z]+']);
也可以设置一个全局约束:
如果想要路由参数在全局范围内被给定正则约束,可以使用 pattern 方法,在 RouteServiceProvider 类的 boot 方法中定义约束模式;
public function boot()
{
Route::pattern('id','[0-9]+');
pattern::boot();
}
一旦模式被定义,将自动应用到所有包含该参数的路由中
Route::get('user/{id}',function($id){
//只有{id}是数字才会调用
});
(5)命名路由
别名的好处:可以在控制器或者路由不管在哪里,都可以使用router函数来生成别名对应的url
Route::get('center',function(){
//
})->name('center');
//还可以为控制器动作指定路由名称
Route::get('user/profile','userController@showprofile')->name('profile');
为命令路由生成URL
为给定路由分配名称之后,就可以通过辅助函数route为该命名生成URL
$url = route('profile');
return redirect->route('profile');
如果命名路由定义了参数,可以传该参数作为第二个参数传递给route函数,给定的路由参数将会自动插入到URL中
Rouute::get('user/{id}/profile',function($id){
//
})->name('profile');
$url = route('profile',['id' => 1]);
(6)路由群组
//路由群组
Route::group(['prefix' => 'member'],function(){
//访问的当前群组下的center,和multy2
//请求路径为member/center ,member/multy2
//请求路径为center , multy2 时,请求的只是一个简单路由
Route::get('center',function(){
return 'center';
});
Route::get('multy2',function(){
return 'member-multy2';
});
});
(7)路由中输出视图
//输出视图使用view 函数 输出hello视图
Route::get('view',function(){
return view('hello');
});
【这篇一直在更新~~~。】

本文详细介绍了路由的概念及其实现方法,包括基本路由、多请求路由、路由参数、命名路由、路由群组以及如何在路由中输出视图等内容。

被折叠的 条评论
为什么被折叠?



