You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 11中如何检查ConvertEmptyStringsToNull中间件是否已注册

在Laravel 11中检查ConvertEmptyStringsToNull中间件是否注册

Laravel 11移除了App\Http\Kernel类,改用bootstrap/app.php中的withMiddleware方法配置中间件,但你可以通过以下方式检查目标中间件的注册状态:

检查全局中间件

全局中间件可通过Illuminate\Contracts\Http\Kernel接口实例获取列表,再判断是否包含目标类:

$kernel = app(\Illuminate\Contracts\Http\Kernel::class);
$globalMiddlewareList = $kernel->getMiddleware();
$isRegistered = in_array(\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, $globalMiddlewareList);

检查路由中间件组(如web/api组)

如果需要确认中间件是否在某个路由组中注册,可以使用Laravel 11新增的中间件管理器Illuminate\Http\Middleware\Middleware:

$middlewareManager = app(\Illuminate\Http\Middleware\Middleware::class);
// 替换为你要检查的中间件组名称,比如'api'
$groupMiddlewareList = $middlewareManager->getGroup('web');
$isRegistered = in_array(\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, $groupMiddlewareList);

补充说明

Laravel 11默认的全局中间件集合中已经移除了ConvertEmptyStringsToNull,如果你的项目需要这个中间件的功能,需要手动在bootstrap/app.php的withMiddleware方法中添加:

return Application::configure(basePath: dirname(__DIR__))
    ->withMiddleware(function (Middleware $middleware) {
        $middleware->append(\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class);
    })
    // ...其他配置
    ->create();

内容的提问来源于stack exchange,提问作者Jay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 01:04:56