我有一个运行Laravel 5.2( Laravel Framework version 5.2.39
)的新站点 . 注意:routes文件不使用Web中间件组,不再需要该组并且可能导致此问题 .
我对 ContactController
的 store
方法进行了简单的验证:
$this->validate($request, [
'ContactFirst' => 'required|max:25',
'ContactLast' => 'required|max:25',
'ContactRole' => 'required|max:25',
'ContactEmail' => 'email|max:255',
'ContactPhone' => 'max:255',
]);
当我故意无法通过验证时,站点会重定向回表单,但错误包是空的,因此不会提供错误信息 .
在表单视图( resources/contacts/new.blade.php
)中,我从文档和转储中放入以下代码:
{{var_dump($errors)}}
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
该页面(正如我所说)重定向回到表单并填充输入 . 但是 $errors
为空并且没有打印消息:
object(Illuminate\Support\ViewErrorBag)[285]
protected 'bags' =>
array (size=0)
empty
3 回答
实际上我不知道你的代码是否可行,因为没有确切的代码表明它会返回错误 .
我使用
$validator->fails()
进行验证检查 .检查此示例:
但我建议您创建
ContactFormRequest
类,扩展Request
类并将其放入存储参数(屏幕截图:http://joxi.ru/eAO55BF4glwRmo):然后在您的控制器
store
方法中执行以下操作:如果经过这次操作你仍然无法得到错误,所以放:
在
{{var_dump($errors)}}
之前这似乎与在Homestead上运行类似站点的多个版本的错误有关 . 销毁盒子并重建它解决了这个问题 .
我使用相同的版本 . 这是我用来显示错误的内容 .