In Laravel 4 I could do something like:
$rules = array(
'first_name' => 'required',
'last_name' => 'required',
'email' => 'required|email|unique:users',
'username' => 'required|alpha_dash|unique:users',
'password' => 'required|min:5|confirmed',
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails())
{
return Redirect::to('register')
->withErrors($validator)
->withInput(Input::except('password'));
}
In Laravel 5.1 it asks to do:
public function postRegister(Request $request){
$rules = array(
'first_name' => 'required',
'last_name' => 'required',
'email' => 'required|email|unique:users',
'password' => 'required|min:6',
);
$validator = $this->validate($request, [
'first_name' => 'required',
'last_name' => 'required',
'email' => 'required|email|unique:users',
'password' => 'required|min:6',
]);
}
Blade File
@extends('...layouts.master')
<div class="dt-form">
<div class="errors">
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
</div>
<span class="main-heading">Sign up to DaysTime</span>
<span class="sub-heading">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam at porttitor sem. Aliquam erat volutpat. Donec placerat.</span>
{!! Form::open(array('action' => 'Auth\AuthController@postRegister','role'=>'form')) !!}
<div class="form-group">
{!! Form::label('first_name', 'First Name') !!}
{!! Form::text('first_name', old('first_name'), array('class' => 'form-control','placeholder'=>'Enter your first name' )) !!}
</div>
<div class="form-group">
{!! Form::label('last_name', 'Last Name') !!}
{!! Form::text('first_name', Input::old('last_name'), array('class' => 'form-control','placeholder'=>'Enter your last name' )) !!}
</div>
<div class="form-group">
{!! Form::label('email', 'Email Address') !!}
{!! Form::email('email', Input::old('email'), array('class' => 'form-control','placeholder'=>'Enter your email address.' )) !!}
</div>
<div class="form-group">
{!! Form::label('password', 'Password') !!}
{!! Form::password('password',array('class' => 'form-control','placeholder'=>'Enter your password.' )) !!}
</div>
<div class="form-group">
{!! Form::token() !!}
{!! Form::submit("OK!!",array("class"=>"btn btn-lg btn-primary")) !!}
</div>
{!! Form::close() !!}
</div>
Thing is,it is not restoring old value upon failed validation. How do I send it?
just replace redirect() with
Route::post('user/profile', function () {
// Validate the request...
return back()->withInput();
});
the docs explain it here