/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array<int, class-string|string>
*/
protected $middleware = [
// \App\Http\Middleware\TrustHosts::class,
\App\Http\Middleware\TrustProxies::class,
\Illuminate\Http\Middleware\HandleCors::class,
\App\Http\Middleware\PreventRequestsDuringMaintenance::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];
2条答案
按热度按时间zzzyeukh1#
你有HTTP中间件,其中一个会修剪数据。https://github.com/laravel/laravel/blob/9ae75b58a1ffc00ad36bf1e877fe2bf9ec601b82/app/Http/Kernel.php#L22
您可以看到有一个
\App\Http\Middleware\TrimStrings::class
,您必须删除它。cdmah0mi2#
输入值的调整恰好是由于一个活动的全局中间件,确切地说是
\App\Http\Middleware\TrimStrings
中间件。既然你说你不想禁用整个应用程序的中间件,你应该考虑只禁用一个或多个特定路由的中间件。你可以通过两种方式来做到这一点:
1.单一途径:
1.路径组:
但是需要注意的是,
withoutMiddleware
方法只能删除路由中间件,不适用于全局中间件,由于TrimStrings
默认为全局中间件,所以仍然需要从app/Http/Kernel.php
文件的$middleware
数组中删除,并为所有不想删除的路由重新手工添加TrimStrings
中间件,为此,使用选项2中演示的类似路由组语法,如下所示:您还可以查看文档:https://laravel.com/docs/10.x/middleware#excluding-middleware