我正在使用 laravel 5.1 和 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();
}
但是我在带有错误文本的闪存消息中收到错误:
{
"username": ["The username has already been taken."],
"email": ["The email has already been taken."]
}
我的问题是:我收到格式不正确的消息。
"用户名": ["用户名已被占用。
而不是
用户名已被占用。
问题图像:这里
尝试在控制器中使用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