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

时间:2021-06-17 15:57:12

标签: laravel laravel-formrequest

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

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

$request->validated()

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

当我使用

$request->validate()

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

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

1 个答案:

答案 0 :(得分:1)

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

$rules = [];

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

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

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

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