Laravel 5.2 не показывает ошибки проверки формы [дубликат]


На этот вопрос уже есть ответ здесь:

Это странно. Я весь день гуглил, пытаясь найти решение своей проблемы, и большинство решений не работают для меня из-за разных версий или разной обработки контроллеров запросов.

То, что происходит, это этот.

У меня есть форма:

<div class="form-group">
    Name *
    {!! Form::text('name', '', ['class'=>'form-control', 'placeholder'=>'Required field']) !!}
</div>

И Запрос:

class ContactFormRequest extends Request
{

    public function authorize()
    {
        return true;
    }


    public function rules()
    {
        return [
            'name' => 'required|max:64',
            'email' => 'required|email|max:128',
            'message' => 'required|max:1024',
        ];
    }
}

Я оставляю поле имени пустым, поэтому оно не проходит проверку, и оно должно вернуться на страницу контактной формы и показать ошибки:

@if(count($errors) > 0)
        <div class="alert alert-danger">
            <ul>
            @foreach($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
            </ul>
        </div>
@endif

Это ничего не показывает! Если я vardump переменная $errors, я получаю следующее:

object(Illuminate\Support\ViewErrorBag)[161]
  protected 'bags' => 
    array (size=0)
      empty

Если я правильно заполню поле формы, оно успешно отправит меня на страницу успеха, и все будет работать идеально. Все, что мне сейчас нужно, это заставить эту ошибку работать правильно: S

Благодарю вас в вперед!

Author: Juan Bonnett, 2016-02-14

1 answers

Это серьезная проблема с обновлением 5.2. Происходит то, что промежуточное программное обеспечение, которое отвечает за то, чтобы сделать эту переменную ошибок доступной для всех ваших представлений, не используется, поскольку оно было перенесено из глобального промежуточного программного обеспечения в группу веб-промежуточного программного обеспечения.

Есть два способа исправить это:

1 - В вашем kernel.php файл, вы можете переместить промежуточное программное обеспечение \Illuminate\View\Middleware\ShareErrorsFromSession::class обратно в protected $middleware собственность.

2 - Вы можете объединить все свои веб-маршруты в группу маршрутов и примените к ним программное обеспечение веб-промежуточного уровня.

Route::group(['middleware' => 'web'], function() {
    // Place all your web routes here...
});

Смотрите это
ларавель-5-2- ошибки-не-появляющиеся-в-блейде

 3
Author: paranoid, 2017-05-23 12:01:37