Laravel:如何记录表单请求输入中的错误
我使用Laravel的表单请求来验证一些复杂的输入。如果有错误,Laravel将用户返回到上一页(这很好),但我也希望它为我记录错误。我该怎么做 我试图使用表单的Laravel:如何记录表单请求输入中的错误,laravel,validation,Laravel,Validation,我使用Laravel的表单请求来验证一些复杂的输入。如果有错误,Laravel将用户返回到上一页(这很好),但我也希望它为我记录错误。我该怎么做 我试图使用表单的with validator方法,如下所示,但在“已达到最大嵌套级别”时出错 public function withValidator($validator) { $validator->after(function ($validator) { if ($validator->fails()) {
with validator
方法,如下所示,但在“已达到最大嵌套级别”时出错
public function withValidator($validator)
{
$validator->after(function ($validator) {
if ($validator->fails()) {
foreach($validator->errors()->all() as $error) {
logger($error);
}
}
});
}
在laravel上进行验证的最佳方法是使用 如果传入的请求参数未通过给定的验证规则,Laravel将自动将用户重定向回其以前的位置 此外,所有验证错误都将出现在
$error
变量中
$errors变量由web中间件组提供的照亮\view\Middleware\ShareErrorsFromSession中间件绑定到视图。应用此中间件时,$errors变量将始终在您的视图中可用,允许您方便地假设始终定义了$errors变量并可以安全使用
要查看错误,可以在视图中添加以下代码段,该代码段在验证失败时返回:
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if($errors->any())
@foreach($errors->all()作为$error)
- {{$error}}
@endforeach
@恩迪夫
调用$validator->fails()
after回调中的$validator->fails()
将以无限循环结束,因为它在过程中调用$validator->after()
。它重新计算,不使用以前的结果
改为使用$validator->errors()
,并检查它是否为空