laravel-中新手从来不在意的路由小技巧-中间件、子域名、路由前缀和命名空间

未匹配的标注

laravel-中新手从来不在意的路由小技巧-中间件、子域名、路由前缀和命名空间

学习文章

xueyuanjun.com/post/9612

中间件

什么是中间件?

是一堵墙,中间件可以对 HTTP 请求进行过滤或重定向

用在什么地方?

认证中间件(别名auth)为例,如果用户已经认证可以进行后续处理,否则将会把用户重定向到登录页面。

如何调用多个中间件?

可以Route::middleware('auth')中参数 写成数组,['auth', 'another']。【仅支持5.5以后的版本】

如何给路由加上前缀,如api/v1,api/v2之类的?

Route::prefix()

参数写成 你的 前缀名。

Route::prefix('api')->group(function () {
    Route::get('/', function () {
        // 处理 /api 路由
    })->name('api.index');
    Route::get('users', function () {
        // 处理 /api/users 路由
    })->name('api.users');
});

如果laravel中,我需要监听其他域名的路由,怎么做?比如我的有支付子域名,订单子域名,或者我还可能有多租户域名?

使用子域名路由。

Route::domain('admin.blog.test')
Route::domain('{account}.blog.test')

使用场景

  1. 为应用子系统设置不同的子域名
  2. 通过参数方式设置子域名,适用于网站拥有多租户的场景(比如天猫,顶级知名商家拥有自己独立的子域名,如 (https://xiaomi.tmall.com)

路由中,默认指向控制器路径如何修改?

  1. 直接在参数写路径。
  2. 使用 子命名空间

子命名空间如下:

// 则在这个 命名空间类,控制器都在 App\Http\Controllers\Admin\AdminController 中
Route::namespace('Admin')->group(function() {
     // App\Http\Controllers\Admin\AdminController
     Route::get('/admin', 'AdminController@index');
});

如何处理优化类似于 footballmatch,basketballmatch,以及下面大量的前缀不同的路由?

使用 路由命名前缀Route::name

// 路由命名+路径前缀
Route::name('foot.')->prefix('user')->group(function () {
    Route::get('{ball?}', function ($id = 1) {
        // 处理 /user/{id} 路由,路由命名为 foot.ball
        return route('foot.ball');
    })->name('ft');
});

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
wangchunbo
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
发起讨论 查看所有版本


暂无话题~