laravel框架与传统框架的不同:
laravel框架不同于传统的MVC,传统的MVC请求一般直接对应的是控制器,laravel中的请求对应的是路由
laravel中的路由简单来说就是将用户的请求转发给相应的程序进行处理
作用就是建立URL和程序之间的映射
请求类型:get、post、put、patch、delete
基本路由
路径:app/Http/routes.php
中定义应用中的大多数路由
该文件加载了App\Providers\RouteServiceProvider
类
GET路由
1 | Route::get('/', function() |
其它路由
1 | Route::post('foo/bar', function() |
match请求注册多路由
1 | Route::match(['get', 'post'], '/', function() |
any注册路由所有http请求
1 | Route::any('foo', function() |
路由产生 URL,可以使用 url 辅助函数来操作:
$url = url(‘foo’);
路由参数
基本路由参数
1 | Route::get('user/{id}', function($id) |
路由参数不能包含 - 字符。使用下划线替代 (_)。
可选择路由参数/带默认值参数
1 | Route::get('user/{name?}', function($name = 'John') |
使用正则表达式限制参数
1 | Route::get('user/{id}/{name}', function($id, $name) |
命名路由
使用as方便产生URL
1 | Route::get('user/profile', ['as' => 'profile', function() |
为控制器方法指定路由名称
1 | Route::get('user/profile', [ |
路由群组
Middleware
在群组共享属性数组的 middleware 参数定义中间件列表,这些中间件就会应用到群组内的所有路由上。中间件将会按在列表内指定的顺序执行:
1 | Route::group(['middleware' => ['foo', 'bar']], function() |
Namespaces
可以在 group 属性数组中使用 namespace 参数,指定在这群组中控制器的命名空间:
1 | Route::group(['namespace' => 'Admin'], function() |
在默认情况下,RouteServiceProvider 包含内置您命名空间群组的 routes.php 文件,让您不须使用完整的 App\Http\Controllers 命名空间前缀就可以注册控制器路由。