laravel 表单请求失败时如何抛出异常?

How throw exception when laravel form request failed?

我使用 Laravel-Form-Request,我有两个问题:

1- 当我创建表单请求时,为了从控制器验证它,我不能使用

$request->validated()

当我使用它时错误说:Call to a member function validated() on null

当我使用

$request->validate()

没有问题。但在Laravel Document中表示使用validated()。那么问题出在哪里呢?

2-正如我所说,我使用 validate() 并且当一切(规则)都正常时继续但是当匹配规则出现问题时只是重定向到当前页面但我想抛出异常。我该如何定义?

当您想要检索已验证的请求正文内容而不是验证请求时,您使用$request->validated。执行请求验证总是validate方法

$rules = [];

$validator = Validator::make($request->all(), $rules);

if($validator->passes()){
    // here you will get all validated data
    $request_data = $request->validated();
}

如果你想抛出异常,你在 Illuminate\Support\Facades\Validator Facade 上有 fails 方法,所以你想检查验证是否失败并像这样抛出异常

if($validator->fails())}{
    throw new ThrowANewExceptionHere("Exception Message");
}