## 本小節主要由七個知識點
路由規則均在 框架 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');
~~~