php laravel validation laravel-5.2 server-side-validation

php - Error de validación de Laravel 5.2 que no aparece en la cuchilla



validation laravel-5.2 (3)

Quiero mostrar un error de validación en la página Ver mientras el usuario da una entrada incorrecta. Está bien que no esté guardando nada en la base de datos mientras un usuario da una entrada incorrecta. Pero no hay ningún mensaje de error en la página de vista del usuario. Si alguien encuentra el error, ayúdame.

Aquí está el controlador:

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(''Y-m-d''); $user->completed_status = ''0''; $user->course_id=$request->Input([''course_id'']); $user->save(); return redirect(''success''); }

Aquí está la ruta:

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

Aquí está la página de vista de la cuchilla:

@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

Y aquí está el bloque de mensaje de error:

@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


Alexey está en lo correcto y si no se siente cómodo con eso, puede agregar este código a su vista para que se muestren los mensajes de la sesión.

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

He hecho esto en laravel 5.5. Confirma si esto te ayuda.


Intente eliminar web middleware web si está utilizando 5.2.27 o superior. El problema ahora es que Laravel aplica automáticamente web middleware web a todas las rutas dentro de routes.php y si está tratando de agregarlo manualmente, puede obtener errores.

app/Providers/RouteServiceProvider.php de la versión 5.2.27 ahora agrega middleware web a todas las rutas dentro de routes.php :

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


Use debajo de la línea en su controlador

usar Validator;

Agregue el siguiente código en la función de su controlador donde se envía su solicitud.

$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()); }

En tu página de vista

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

Para mostrar el error sabio de campo individual.