这太奇怪了。我在谷歌上搜索了一整天,试图找到解决我的问题的方法,但是由于不同版本或不同的请求-控制器处理方式,大多数解决方案对我都不起作用。
现在发生的是这个。
我有一个表格:
<div class="form-group">
Name *
{!! Form::text('name', '', ['class'=>'form-control', 'placeholder'=>'Required field']) !!}
</div>
以及一项请求:
class ContactFormRequest extends Request
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'name' => 'required|max:64',
'email' => 'required|email|max:128',
'message' => 'required|max:1024',
];
}
}
我将name字段保留为空,因此它无法验证,它应该返回到contact表单页面并显示错误:
@if(count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
什么都没显示出来!如果我vardump
$errors
变量,我得到以下内容:
object(Illuminate\Support\ViewErrorBag)[161]
protected 'bags' =>
array (size=0)
empty
如果我适当地填充表单字段,它就会成功地将我发送到“成功”页面,并且一切都很完美。我现在所需要的就是让这个错误的东西正常工作:S
提前谢谢你!
发布于 2016-02-13 21:25:56
这是5.2升级的关键问题。正在发生的事情是中间件,它负责使所有视图都可以使用错误变量,因为它从全局中间件转移到web中间件组。
有两种方法可以解决这个问题:
1-在kernel.php文件中,可以将中间件\Illuminate\View\Middleware\ShareErrorsFromSession::class
移回protected
$middleware
属性。
2-您可以用一个路由组包装您的所有web路由,并将web中间件应用于它们。
Route::group(['middleware' => 'web'], function() {
// Place all your web routes here...
});
看这个
https://stackoverflow.com/questions/35387317
复制