在我的Laravel应用程序中,我使用请求变量对控制器中的表单进行了一些验证。验证似乎有效,但是当我试图在视图中显示错误时,它们不会显示出来。我知道验证是有效的,因为只要我键入非整数的内容,它就会让我回到表单的视图。这是表单的视图:(显示errorr的"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',
]);
}
为什么错误没有显示在视图中?
更新:
将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 ) }}