Laravel 5.2 - Auth: Anzeige von benutzerdefinierten Fehlermeldungen
Wie kann ich das anpassen der Fehlermeldungen (wie "These credentials do not match our records."
), die angezeigt werden, nach erfolglosem login/Registrierung ohne direkten Kontakt mit der Stiftung-Dateien? Ich bin für eine Lösung suchen und hoffentlich einen eleganten, zumindest nicht berühren AuthenticatesAndRegistersUsers
noch ThrottlesLogins
🙂
Ich bin mit der AuthController
und Formen zur Verfügung gestellt von Laravel nach Ausführung:
php artisan machen:auth
Controller:
(es hat nur einen Konstruktor und zwei Methoden, der rest fällt an die Stiftung, die Methoden sind:)
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
]);
}
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
Form:
<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>
Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie überschreiben
getFailedLoginMessage
auf dieAuthController
stammt aus derAuthenticatesUsers
MerkmalOder nicht überschreiben, und legen Sie eine lang-Wert für
auth.failed
. DiegetFailedLoginMessage
Methode prüft fürLang::has('auth.failed')
und verwenden, wenn vorhanden.Für die eigentliche Validierung Fehlermeldungen überschrieben werden können, die
postLogin
und übergeben Ihre eigene Reihe von Nachrichten zuvalidate
oder wenn Sie wollte, Sie zu ändern weltweit können Sie Sie anpassen, in der entsprechende lang-Datei inresources/lang/{lang}/validation.php
.Sie nicht überschreiben wollen die getFailedLoginMessage () - Methode im AuthController. Die richtige Lösung ist, die Nachricht zu ändern, die in der Lage entwickelt. Wenn Sie einen Blick in das Ressourcen - > lang > en-Ordner, sehen Sie eine auth.php Datei. In es, es ist ein "fehlgeschlagen" - Attribut mit einer Nachricht, die Sie anpassen können. Ändern Sie es dort. Die orignial getFailedLoginMessage () - Methode in der Laravel auth-Dateien in Hersteller-und sieht zu, dass die Lage für eine benutzerdefinierte Nachricht zuerst, bevor Sie sich auf den Standard.