基本路由
路由在一侧定义 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']);
});