基本路由

路由在一側定義 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']);    
});