基本路由
路由在一側定義 HTTP 方法和 URI 之間的對映,在另一側定義動作。路由通常寫在 app/Http/routes.php
檔案中。
在最簡單的形式中,路由是通過在 Route facade 上呼叫相應的 HTTP 方法定義的,將引數傳遞給匹配 URI(相對於應用程式根目錄)的字串和回撥。
例如:返回檢視 home
的站點的根 URI 的路由如下所示:
Route::get('/', function() {
return view('home');
});
一個 post 請求的路由,簡單地回顯 post 變數:
Route::post('submit', function() {
return Input::all();
});
//or
Route::post('submit', function(\Illuminate\Http\Request $request) {
return $request->all();
});
指向 Controller 方法的路由
路徑可以引用[ControllerClassName @ Method]語法中的控制器方法,而不是定義內聯回撥:
Route::get('login', 'LoginController@index');
多個動詞的路線
match
方法可用於匹配給定路由的 HTTP 方法陣列:
Route::match(['GET', 'POST'], '/', 'LoginController@index');
你還可以使用 all
匹配給定路由的任何 HTTP 方法:
Route::all('login', 'LoginController@index');
路線組
可以對路由進行分組以避免程式碼重複。
假設所有字首為/admin
的 URI 使用一個名為 admin
的特定中介軟體,它們都存在於 App\Http\Controllers\Admin
名稱空間中。
使用路由組表示清除的方法如下:
Route::group([
'namespace' => 'Admin',
'middleware' => 'admin',
'prefix' => 'admin'
], function () {
// something.dev/admin
// 'App\Http\Controllers\Admin\IndexController'
// Uses admin middleware
Route::get('/', ['uses' => 'IndexController@index']);
// something.dev/admin/logs
// 'App\Http\Controllers\Admin\LogsController'
// Uses admin middleware
Route::get('/logs', ['uses' => 'LogsController@index']);
});