我正在使用laravel 5.1和flash消息。我想在验证器失败时向用户显示flash消息。
我的代码如下所示:
/*
Validation
*/
$rules = array(
'username' => 'alpha_numeric_spaces|required|min:3|max:12|not_in:edit,password|unique:users,username',
'email' => 'email|unique:users,email',
'password' => 'required|min:6|confirmed',
'rules' => 'required|'
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()) {
flash()->error($validator->messages());
return redirect()->back()->withInput();
}
但是我收到错误文字的flash消息错误:
{
"username": ["The username has already been taken."],
"email": ["The email has already been taken."]
}
我的问题是:我收到了错误的格式信息。
“username”:[“用户名已被占用。”],
而不是
用户名已被占用。
问题图片: HERE
答案 0 :(得分:1)
尝试在控制器中使用Session::flash
:
Session::flash('error', $validator->messages());
您的刀片模板中的Session::get()
:
@if (Session::has('error'))
<div class="alert alert-warning" align="center">{{ Session::get('error') }}</div>
@endif
这应该有用,但是如果你仍然得到完全相同的错误,请尝试迭代:
@foreach (Session::get('error') as $er => $errorMessage )
{{ $errorMessage[0] }}
@endforeach