Laravel 5.2 Проверка Ошибка, не появляющаяся в лезвии

Я хочу показать ошибку проверки на странице просмотра, пока пользователь вводит неверный ввод. Хорошо, что он ничего не сохраняет в базе данных, а пользователь вводит неверный ввод. Но на странице просмотра пользователя нет сообщения об ошибке. Если кто-нибудь найдет ошибку, пожалуйста, помогите мне.

Вот контроллер:

public function saveUser(Request $request){ $this->validate($request,[ 'name' => 'required|max:120', 'email' => 'required|email|unique:users', 'phone' => 'required|min:11|numeric', 'course_id'=>'required' ]); $user = new User(); $user->name= $request->Input(['name']); $user->email= $request->Input(['email']); $user->phone= $request->Input(['phone']); $user->date = date('Ym-d'); $user->completed_status = '0'; $user->course_id=$request->Input(['course_id']); $user->save(); return redirect('success'); } 

Вот маршрут:

 Route::group(['middleware' => 'web'], function () { Route::get('/', function () { return view('index'); })->name('main'); Route::post('/saveUser',[ 'uses' => 'AppController@saveUser', 'as'=>'saveUser', ]); }); 

Вот страница просмотра лезвия:

 @extends('layouts.master') @section('title') Create User @endsection @section('content') @include('partials.message-block') <div class="container" > <h3> Student Register </h3> {!! Form::open(array('route' => 'saveUser','class'=>'form-horizontal','method'=>'POST')) !!} {!! Form::token(); !!} {!! csrf_field() ; !!} <div class="form-group"> <label>Name</label> <input type="text" name="name" class="form-control" required placeholder="Name"> </div> <div class="form-group"> <label>Email</label> <input type="email" name="email" class="form-control" required placeholder="email"> </div> <div class="form-group"> <label>Phone Number</label> <input type="text" name="phone" class="form-control" required placeholder="phone"> </div> <div class="form-group"> <label for="">Class</label> <select class="form-control input-sm" name="course_id" > @foreach($input as $row) <option value="{{$row->id}}">{{$row->name}}</option> @endforeach </select> </div> <button type="submit" class="btn btn-default">Submit</button> {!! Form::close() !!} </div> @endsection 

И вот блок сообщений об ошибке:

 @if(count($errors) > 0) <div class="row"> <div class="col-md-4 col-md-offset-4 error"> <ul> @foreach($errors->all() as $error) <li>{{$error}}</li> @endforeach </ul> </div> </div> @endif @if(Session::has('message')) <div class="row"> <div class="col-md-4 col-md--offset-4 success"> {{Session::get('message')}} </div> </div> @endif 

Попробуйте удалить web промежуточное программное обеспечение, если вы используете 5.2.27 или выше. Дело в том, что теперь Laravel автоматически применяет web промежуточное ПО ко всем маршрутам внутри routes.php и если вы пытаетесь добавить его вручную, вы можете получить ошибки.

app/Providers/RouteServiceProvider.php версии 5.2.27 теперь добавляет сетевое промежуточное ПО ко всем маршрутам внутри routes.php :

 protected function mapWebRoutes(Router $router) { $router->group([ 'namespace' => $this->namespace, 'middleware' => 'web', ], function ($router) { require app_path('Http/routes.php'); }); } 

Используйте строку ниже в вашем контроллере

использовать валидатор;

Добавьте ниже код в функцию контроллера, где отправляется ваш запрос.

 $validator = Validator::make($request->all(), [ 'fname' => 'required|max:20|min:4', 'uemail' => 'required|email', 'message' => 'required', ]); if ($validator->fails()) { $messages = $validator->messages(); return Redirect::back()->withErrors($messages)->withInput($request->all()); } 

На вашей странице просмотра

  @if ($errors->any()) <label for="fname" class="error">{{ $errors->first('fname') }}</label> @endif 

Для отображения индивидуальной ошибки поля.