Laravel闪存消息失败

时间:2016-03-07 08:19:29

标签: php laravel flash-message

我正在使用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

1 个答案:

答案 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