Desidero mostrare l'errore di convalida nella pagina Visualizza mentre l'utente fornisce un input errato. È giusto che non stia salvando nulla nel database mentre un utente dà un input sbagliato. Ma non c'è nessun messaggio di errore nella pagina vista utente. Se qualcuno trova l'errore, per favore aiutami.Errore di convalida di Laravel 5.2 non visualizzato nel blade
Ecco il controllore:
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');
}
Ecco il percorso:
Route::group(['middleware' => 'web'], function() {
Route::get('/', function() {
return view('index');
})->name('main');
Route::post('/saveUser',[
'uses' => '[email protected]',
'as'=>'saveUser',
]);
});
Ecco la pagina di visualizzazione della lama:
@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
E qui è il blocco error-messaggio :
@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
Provare a rimuovere il middleware 'web' se si utilizza 5.2.27 o versioni successive. –
grazie per l'aiuto ora funziona! :) – User57
Possibile duplicato di [ErrorBag è sempre vuoto in Laravel 5.2] (http://stackoverflow.com/questions/36377420/errorbag-is-always-empty-in-laravel-5-2) – patricus