美文网首页
60. 路由 路由组

60. 路由 路由组

作者: 独步天堂 | 来源:发表于2017-10-06 23:45 被阅读3次
    • 路由组允许你在大量路由之间共享路由属性,例如中间件或命名空间,而不需要为每个路由单独定义这些属性。

    • 共享属性应该以数组的形式传入 Route::group 方法的第一个参数中。

    • 要给路由组中所有的路由分配中间件,可以在 group 之前调用 middleware 方法,中间件会依照它们在数组中列出的顺序来运行:

    Route::middleware(['first', 'second'])->group(function () {
        Route::get('/', function () {
            // 使用 first 和 second 中间件
        });
    
        Route::get('user/profile', function () {
            // 使用 first 和 second 中间件
        });
    });
    
    • 使用 namespace 方法将相同的 PHP 命名空间分配给路由组的中所有的控制器:
    Route::namespace('Admin')->group(function () {
        // 在 "App\Http\Controllers\Admin" 命名空间下的控制器
    });
    

    默认情况下,RouteServiceProvider 会在命名空间组中引入你的路由文件,让你不用指定完整的 App\Http\Controllers 命名空间前缀就能注册控制器路由。因此,你只需要指定命名空间 App\Http\Controllers 之后的部分。

    • 路由组也可以用来处理子域名。子域名可以像路由 URI 一样被分配路由参数,允许你获取一部分子域名作为参数给路由或控制器使用。可以在 group 之前调用 domain 方法来指定子域名:
    Route::domain('{account}.myapp.com')->group(function () {
        Route::get('user/{id}', function ($account, $id) {
            //
        });
    });
    
    • 可以用 prefix 方法为路由组中给定的 URL 增加前缀。例如,你可以为组中所有路由的 URI 加上 admin 前缀:
    Route::prefix('admin')->group(function () {
        Route::get('users', function () {
            // 匹配包含 "/admin/users" 的 URL
        });
    });
    

    相关文章

      网友评论

          本文标题:60. 路由 路由组

          本文链接:https://www.haomeiwen.com/subject/wfrryxtx.html