在我的Laravel应用程序中,我使用请求变量对控制器中的表单进行了一些验证。验证似乎有效,但是当我尝试在视图中显示错误时,它们没有显示出来。我知道验证工作正常,因为只要我输入一个不是整数的东西,它就会把我带回到带有表单的视图中。以下是具有以下形式的视图:(显示错误的'if'语句不起作用):
@if(count($errors) > 0)
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
@endif
<form method='POST' action='/lorem/show'>
<label>Enter Number of Paragraphs</label>
<input type='hidden' name='_token' value='{{ csrf_token() }}'>
<input type='text'
id='paragraph'
name='paragraph'
maxlength="2"
size="5"
<br/>
<input type="checkbox" name="header" value="header"/>Include Headers<br/><br/>
<button type="submit" class="btn btn-primary">
Create </button>
</form>
这是我控制器中的功能:
public function postShow (Request $request) {
$this->validate ($request, [
'paragraph' => 'required|integer',
]);
}
为什么视图中没有显示错误?
答案 0 :(得分:0)
<强>更新强>
将postShow
更新为:
$this->validate( $request->all(), [
'paragraph' => 'required|integer',
]);
即。你错过了$request->all()
。
将if
语句更改为:
@if( $errors->first() )
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
@endif
如果这不起作用,请通过在视图中的某处添加以下内容来验证您实际上是将错误消息返回到视图:
{{ dd( $errors ) }}