Сбой флеш-сообщений Laravel

Я использую laravel 5.1 и флеш-сообщения. Я хочу показать флэш-сообщение пользователю при сбое валидатора.

Мой код выглядит так:

/*
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."]
}

Моя проблема: я получаю сообщения плохого формата.

«username»: [«Имя пользователя уже занято.»],

вместо

Имя пользователя уже занято.

Проблемное изображение:
ВОТ

2

Решение

Попробуй использовать 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
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]