How can I display the validation message in the view that is being redirected in Laravel ?
Here is my function in a Controller
public function registeruser() { $firstname = Input::get('firstname'); $lastname = Input::get('lastname'); $data = Input::except(array('_token')) ; $rule = array( 'firstname' => 'required', 'lastname' => 'required', ) ; $validator = Validator::make($data,$rule); if ($validator->fails()) { $messages = $validator->messages(); return Redirect::to('/')->with('message', 'Register Failed'); } else { DB::insert('insert into user (firstname, lastname) values (?, ?)', array($firstname, $lastname)); return Redirect::to('/')->with('message', 'Register Success'); } }
I know the below given code is a bad try, But how can I fix it and what am I missing
@if($errors->has()) @foreach ($errors->all() as $error) <div>{{ $error }}</div> @endforeach @endif
The @error directive has the $message variable to display the error message. You can use this method to display error messages along with their attributes in the view file.
Laravel 4
When the validation fails return back with the validation errors.
if($validator->fails()) { return Redirect::back()->withErrors($validator); }
You can catch the error on your view using
@if($errors->any()) {{ implode('', $errors->all('<div>:message</div>')) }} @endif
UPDATE
To display error under each field you can do like this.
<input type="text" name="firstname"> @if($errors->has('firstname')) <div class="error">{{ $errors->first('firstname') }}</div> @endif
For better display style with css.
You can refer to the docs here.
UPDATE 2
To display all errors at once
@if($errors->any()) {!! implode('', $errors->all('<div>:message</div>')) !!} @endif
To display error under each field.
@error('firstname') <div class="error">{{ $message }}</div> @enderror
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With