Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel 5.2 Validation Error not appearing in blade

Tags:

I want to show validation Error in View page while user giving wrong input. It's Ok that it's not saving anything in database while a user giving wrong input. But there is no error message in user view page. If anyone find the error, please help me out.

Here is the controller:

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');              } 

Here is the route:

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

Here is the blade view page:

@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 

And here is the error-message block:

@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 
like image 209
User57 Avatar asked Apr 22 '16 03:04

User57


1 Answers

Try to remove web middleware if you're using 5.2.27 or higher. The thing is now Laravel automatically applies web middleware to all routes inside routes.php and if you're trying to add it manually you can get errors.

app/Providers/RouteServiceProvider.php of the 5.2.27 version now adds web middleware to all routes inside routes.php:

protected function mapWebRoutes(Router $router) {     $router->group([         'namespace' => $this->namespace, 'middleware' => 'web',     ], function ($router) {         require app_path('Http/routes.php');     }); } 
like image 174
Alexey Mezenin Avatar answered Sep 18 '22 15:09

Alexey Mezenin