如何在Laravel中重定向的视图中显示验证消息?
这是我在控制器中的函数
public function registeruser()
{
$firstname = Input::get('firstname');
$lastname = Input::get('lastname');
$data = Input::except(array('_token')) ;
$rule = array(
'firstname' => 'required',
'lastname' => 'required',
) ;
$validator = Validator::make($data,$rule);
if ($validator->fails())
{
$messages = $validator->messages();
return Redirect::to('/')->with('message', 'Register Failed');
}
else
{
DB::insert('insert into user (firstname, lastname) values (?, ?)',
array($firstname, $lastname));
return Redirect::to('/')->with('message', 'Register Success');
}
}
我知道下面给出的代码是一个糟糕的尝试,但我如何修复它,我遗漏了什么
@if($errors->has())
@foreach ($errors->all() as $error)
<div>{{ $error }}</div>
@endforeach
@endif
拉维尔4号
当验证失败时,返回验证错误。
if($validator->fails()) {
return Redirect::back()->withErrors($validator);
}
您可以捕获视图上的错误,使用
@if($errors->any())
{{ implode('', $errors->all('<div>:message</div>')) }}
@endif
更新
要在每个字段下显示错误,您可以这样做。
<input type="text" name="firstname">
@if($errors->has('firstname'))
<div class="error">{{ $errors->first('firstname') }}</div>
@endif
为了更好的显示风格与css。
你可以参考这里的文档。
更新2
一次显示所有错误
@if($errors->any())
{!! implode('', $errors->all('<div>:message</div>')) !!}
@endif
在每个字段下显示错误。
@error('firstname')
<div class="error">{{ $message }}</div>
@enderror
如果要从您所在的同一控制器加载视图,请执行以下操作:
if ($validator->fails()) {
return self::index($request)->withErrors($validator->errors());
}
如果您想快速显示所有错误,但需要更多的控制:
@if ($errors->any())
@foreach ($errors->all() as $error)
<div>{{$error}}</div>
@endforeach
@endif
@if ($errors->has('category'))
<span class="error">{{ $errors->first('category') }}</span>
@endif