简体   繁体   中英

how can i display errors message on blade template of laravel 5

I created laravel 5.2 project. I have been created login page but I am stuck on display validation errors message on blade template. I don't know what I'm doing wrong?

Please help me for this issue. Thanks!

View

 <div>
    <input type="text" name="email" class="form-control" placeholder="Email"/>
    @if($errors->has('email')) <p>{{ $errors->first('email') }}</p> @endif
 </div>

Controller

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\User;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\MessageBag;


class AuthController extends Controller
{
    public function login()
    {
        return view('user.login');
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function handlelogin(Request $request)
    {
        $messages = array(
            'email.required'=>'You cant leave Email field empty',
            'password.required'=>'You cant leave name field empty'
        );

        $rules = array(
            'email' => 'required|email|max:20',
            'password' => 'required'
        );

        $validator = Validator::make($request->all(),$rules,$messages);

        if ($validator->fails())
        {
            return redirect()->back()->withErrors($validator->errors());

        }else{
        
            $data = $request->only('email','password');


            if(\Auth::attempt($data)){
                return redirect()->intended('/');
            }

        return back()->withInput();
        }
    }

 
}

You don't need to check for errors, just do as following

{!! $errors->first('email', '<div class="error-block">:message</div>') !!}

please note that "error-block" is a custom css class and you can customize html template according to your choice.

Retrieving An Error Message With A Format


I have different approach.

Below input field I include additional view:

@include('input-errors', ['inputName' => 'inputName']) #For your case it would be 'email'

input-errors.blade.php

@foreach ($errors->get($inputName) as $message)
    <span class="input-error">{{ $message }}</span>
@endforeach

Styles.css

.input-error {
    color: #ff5555;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM