## 本小节主要由七个知识点
路由规则均在 框架 app/http/routes.php 文件中编写
[TOC]
### 路由简介
* 简单的说就是将用户的请求转发给相应的程序处理
* 作用就是建立url和程序之间的映射 达到美化/简化url的目的
* 请求类型 get post put patch delete
### 基本路由
>[info]get 路由
~~~
Route::get('home', function() {
return 'home';
});
~~~
>[info] post 路由
~~~
Route::post('home2', function() {
return 'home2';
});
~~~
>[warning]不能通过url进行访问,否则报错
### 多请求路由
> match 路由
>[info] 定义指定路由请求类型为 get post
~~~
Route::match(['get','post'], 'multyl' function() {
return 'multyl';
});
~~~
>[info] any 路由
>支持所有请求类型 get post put patch delete
~~~
Route::any('multyl2' function() {
return 'multyl2';
});
~~~
### 路由参数
>[info]get 参数路由
~~~
Route::get('user/{id}', function($id) {
return 'user_id:' . $id ;
});
~~~
>如果觉得每次跟着参数不方便,也可定义可选参数路由 ,null可指定$name默认值
~~~
Route::get('user/{name?}', function($name = null) {
return 'user_name:' . $name ;
});
~~~
>对单个参数进行验证
~~~
Route::get('user/{name?}', function($name = null) {
return 'user_name:' . $name ;
})->where('name', '[a-zA-Z]+');
~~~
>对多个参数进行验证
~~~
Route::get('user/{id}/{name?}', function($id, $name = null) {
return 'user_name:' . $name . '_id:' .$id;
})->where(['id' => '[0-9]+', 'name' => '[a-zA-Z]+']);
~~~
### 路由别名
>用于在可用的情景下自动生成url 如控制器 模版中生成url
~~~
Route::get('user/member-center', ['as' => 'center', function() {
return route('center');
}]);
~~~
### 路由群组
~~~
Route::group(['prefix' => 'home'], function() {
Route::get('user/member-center', ['as' => 'center', function() {
return route('center');
}]);
Route::any('multyl2' function() {
return 'multyl2';
});
});
~~~
### 路由中输出视图
>通过路由指定输出Views目录下的welcom.blade.php模版文件
~~~
Route::get('view', function() {
return view('welcom');
});
~~~
### 路由中指定控制器方法
~~~
//站点首页
Route::get('/', 'SiteController@index' );
//关于我们
Route::get('/about', 'SiteController@about' );
//文章列表页面
Route::get('/Arcticle', 'ArcticleController@index');
~~~