Laravel 5.2 – Auth: visualizza messaggi di errore personalizzati

Come posso personalizzare i messaggi di errore (come "These credentials do not match our records." ) Che vengono visualizzati in caso di accesso / logging senza successo senza wherer toccare i file di fondazione? Sto cercando una soluzione e, si spera, elegante, alless non toccando AuthenticatesAndRegistersUsersThrottlesLogins 🙂

Sto usando AuthController e moduli forniti da Laravel dopo l'esecuzione:

php artisan make: auth

controller:

(Ha solo un constructor e due methods, il resto cade sulla base, i methods sono 🙂

 protected function validator(arrays $data) { return Validator::make($data, [ 'name' => 'required|max:255', 'email' => 'required|email|max:255|unique:users', 'password' => 'required|confirmed|min:6', ]); } protected function create(arrays $data) { return User::create([ 'name' => $data['name'], 'email' => $data['email'], 'password' => bcrypt($data['password']), ]); } 

Modulo:

 <form class="form-horizontal" role="form" method="POST" action="{{ url('/login') }}"> {!! csrf_field() !!} <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}"> <label class="col-md-4 control-label">E-Mail</label> <div class="col-md-6"> <input type="email" class="form-control" name="email" value="{{ old('email') }}" required> @if ($errors->has('email')) <span class="help-block"> <strong>{{ $errors->first('email') }}</strong> </span> @endif </div> </div> <div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}"> <label class="col-md-4 control-label">Password</label> <div class="col-md-6"> <input type="password" class="form-control" name="password" required> @if ($errors->has('password')) <span class="help-block"> <strong>{{ $errors->first('password') }}</strong> </span> @endif </div> </div> <div class="form-group"> <div class="col-md-6 col-md-offset-4"> <div class="checkbox"> <label> <input type="checkbox" name="remember"> Remember Me </label> </div> </div> </div> <div class="form-group"> <div class="col-md-6 col-md-offset-4"> <button type="submit" class="btn btn-primary"> <i class="fa fa-btn fa-sign-in"></i>Login </button> <a class="btn btn-link" href="{{ url('/password/reset') }}">Forgot Your Password?</a> </div> </div> 

Grazie!

Puoi sovrascrivere getFailedLoginMessage su AuthController che proviene dal tratto AuthenticatesUsers

 protected function getFailedLoginMessage() { return 'what you want here.'; } 

Oppure non sovrascriverlo e impostare un valore lang per auth.failed . Il metodo getFailedLoginMessage controlla Lang::has('auth.failed') e lo usa se disponibile.

Per i messaggi di errore di validation effettivi è ansible sovrascrivere il postLogin e passare la propria matrix di messaggi per validate , oppure se si desidera modificarli globalmente è ansible regolarli nel file lang appropriato in resources/lang/{lang}/validation.php .

Non si desidera sovrascrivere il metodo getFailedLoginMessage () in AuthController. La soluzione corretta è quella di cambiare il messaggio nella posizione progettata. Se guardi nella cartella Risorse> lang> it, vedrai un file auth.php. In esso, c'è un attributo "fallito" con un messaggio che puoi personalizzare. Cambialo lì Il metodo originale getFailedLoginMessage () nei file di authorization di Laravel nel fornitore cerca prima quella posizione per un messaggio personalizzato, prima di stabilirsi sul valore predefinito.