我使用 Laravel-Form-Request,我有两个问题:
1- 当我创建表单请求时,要从控制器验证它,我不能使用
$request->validated()
当我使用它时错误说:Call to a member function validated() on null
当我使用
$request->validate()
没有问题。但是在 Laravel Document 中说使用 validated()
。那么问题出在哪里?
2- 正如我所说,我使用 validate()
并且当一切(规则)正常时继续,但是当匹配规则出现问题时,只需重定向到当前页面,但我想抛出异常。我该如何定义??
答案 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");
}