【发布时间】:2017-02-04 06:22:18
【问题描述】:
此问题已在 Laravel 5.4.9 中修复。
这两个新的中间件类不适用于我自己的请求。 两个新的中间件是:
\App\Http\Middleware\TrimStrings::class
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class
但是,他们不会将更改应用于我自己的请求。例如:我有这个要求:
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;
class CreateStoreRequest extends FormRequest
{
public function authorize()
{
return Auth::check();
}
public function rules()
{
var_dump( $this->all() ); // Content not handled by middleware
return [
// Rules
];
}
}
当我使用 var_dump 时,我可以看到内容没有改变。
如果我在我的控制器中使用Illuminate\Http\Request,它就可以工作。
有什么方法可以在我自己的请求类中实现这些更改?
【问题讨论】:
-
当您在方法中使用 CreateStoreRequest 时,尝试 dd($request->all()) 并分享结果,它应该可以正常工作
-
返回未处理的内容。我还调试了这些功能,它们正在运行。如果我使用助手请求('field'),它会返回处理的内容。问题是我想在自己的请求类中使用已处理的内容进行验证。
-
手动修剪和转换(使用 trim() 和 terany 运算符转换)我认为这些中间件在请求后工作
-
他们没有。它们在 Illuminate\Http\Request 中工作,但不适用于我自己的请求。这绝对不是故意的。
-
同样的问题,找不到将 TrimStrings 和 ConvertEmptyStringsToNull 应用到我的 FormRequest 的方法。
标签: laravel laravel-5 laravel-request laravel-5.4