路由: 将用户的请求按照事先规划的方案, 将用户请求提交给指定的控制器或者功能函数来进行处理 关键类: Illuminate\Routing\Route

路由配置

Laravel框架中, 路由信息必须要手动进行配置。
命令 php artisan route:list 可查看系统已有的路由命令

配置文件

路由配置文件的位置: routes/web.php

配置路由

语法规则

  1. Route::请求方式(请求的URL,匿名函数或控制响应的方法)

示例代码

  1. // 根路由
  2. Route::get('/', function () {
  3. return view('welcome');
  4. });

不同请求方式对应的路由方法

  1. Route::get($uri, $callback);
  2. Route::post($uri, $callback);
  3. Route::put($uri, $callback);
  4. Route::patch($uri, $callback);
  5. Route::delete($uri, $callback);
  6. Route::options($uri, $callback);

路由匹配

有时候一个路由需要响应多个Http请求, 可以通过 matchany 来指定路由的匹配情况

固定匹配 | match

注册匹配指定请求类型的新路由

  1. Route match(array|string $methods, string $uri, Closure|array|string|callable $action = null)

示例代码

// 用数组来声明match要匹配的请求类型
Route::match(['get', 'post'], '/', function()) {
    // ...
});

所有匹配 | any

注册响应所有请求类型的新路由

Route any(string $uri, Closure|array|string|callable|null $action = null)

示例代码

// any表示匹配所有的请求类型
Route::any('/', function()) {
    // ...
});

路由别名

在路由定义时, 为路由起一个简单别名。 以后在程序中可使用别名来获取路由信息

别名 | name

添加或修改路由的名字 (起别名)

$this name(string $name)

示例代码

Route::get('/very/long/path', function() {
  echo "This is Route Alias";
}) -> name('moeAlias');

路由群组

路由的前缀相同时,可以放到路由群组中, 方便管理

群组 | group

创建路由群组

void group(array $attributes, Closure|string $routes)

示例代码

# 使用 prefix 字段指定路由前缀
Route::group(['prefix' => 'group/test'], function() {
  // prefix/members1, 即 group/test/members1 
  Route::get('members1', function() {
    echo "admin/mbmbers1";
  });

  Route::get('members2', function() {
    echo "admin/mbmbers2";
  });

  Route::get('members3', function() {
    echo "admin/mbmbers3";
  });
});