Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inny][Laravel 5.2] Własne komunikaty błędów podczas logowania
Forum PHP.pl > Forum > PHP > Frameworki
miccom
Cześć.
gdzie znajdę reguły aby zmienić treść komunikatu błędów logowania?

Aktualnie jeśli nie wypełnię formularza logowania i kliknę zaloguj to otrzymuję komunikaty:

  1. Pole email jest wymagane
  2. Pole password jest wymagane


Chciałbym sobie dać proste alerty- "wpisz email" czy "wpisz hasło"

Dziękuję za pomoc.
SmokAnalog
Korzystasz z make:auth? Skąd wziąłeś tłumaczenia?

Domyślnie, polskie tłumaczenie walidacji powinno być w pliku /resources/lang/pl/validation.php. Tam możesz się bawić ile dusza zapragnie.
Pyton_000
Z dokumentacji:

Cytat
Specifying Custom Messages In Language Files

In many cases, you may wish to specify your attribute specific custom messages in a language file instead of passing them directly to the Validator. To do so, add your messages to custom array in the resources/lang/xx/validation.php language file.

Kod
'custom' => [
    'email' => [
        'required' => 'We need to know your e-mail address!',
    ],
],
r4xz
Jeśli chcesz to zrobić lokalnie tylko w formularzu logowania to możesz w LoginController nadpisać metodę validateLogin:
  1. /**
  2.   * Validate the user login request.
  3.   *
  4.   * @param \Illuminate\Http\Request $request
  5.   * @return void
  6.   */
  7. protected function validateLogin(Request $request)
  8. {
  9. $this->validate($request, [
  10. $this->username() => 'required|string',
  11. 'password' => 'required|string',
  12. ], [
  13. "{$this->username()}.required" => 'Wpisz login',
  14. 'password.required' => 'Wpisz hasło',
  15. );
  16. }


Możesz także nadpisać metodę sendFailedLoginResponse aby zmienić zachowanie po wpisaniu błędnych danych. W tym wypadku akurat lepiej zmienić tłumaczenie zapisane pod kluczem auth.failed:
  1. /**
  2.   * Get the failed login response instance.
  3.   *
  4.   * @param \Illuminate\Http\Request $request
  5.   * @return \Symfony\Component\HttpFoundation\Response
  6.   *
  7.   * @throws \Illuminate\Validation\ValidationException
  8.   */
  9. protected function sendFailedLoginResponse(Request $request)
  10. {
  11. throw ValidationException::withMessages([
  12. $this->username() => [trans('auth.failed')],
  13. ]);
  14. }


Zobacz sobie jak działa ten AuthenticatesUsers trait.

---EDIT---
Dałem informację dla Laravel 5.6, nie zauważyłem że sprecyzowałeś że chodzi o 5.2. Różnice są niewielkie więc przynajmniej jesteś trochę zmuszony aby to porównać i zrozumieć jak działa, zamiast zmieniać w ciemno smile.gif
miccom
Piękne dzięki.
Właśnie tego mi brakowało, lang/validation smile.gif
Pozdrawiam.
Miccom

Ok, to podrzucę jeszcze jedne problem bo dotyczy tego samego wink.gif


W kontrolerze AuthController mam takie coś:

$this->validate($request, User::$login_validation_rules);

Ale w tym kontrolerze nie występuje funkcja validate.
gdzie ją znajdę?
r4xz
To jest metoda dostarczana przez Laravel wraz z dziedziczeniem po klasie Controller - https://laravel.com/docs/5.2/validation#qui...alidation-logic
miccom
Hmm, to wiem.
Chcę dostać się do elementu, który odsyła usera jeśli poda nieprawidłowe dane do rejestracji.

Aktualnie otrzymuję alerty ale stronę mam jako onepage, okno alertów mam jako position: fixed.
I aktualnie jest tak, że user jeśli np. nie poda poprawnego emaila przy rejestracji to odsyła go do góry strony, a ja chciałbym aby odsyłało go do kotwicy:) i kombinuję czy np.

  1. return redirect()->intended('/#register');


Mam taki kod w AuthController

  1. $this->validate($request, User::$login_validation_rules);
  2. $data = $request->only('email', 'password');
  3. if(\Auth::attempt($data)){
  4. return redirect()->intended('profil');
  5. }
  6. return redirect()->back()->with('message', 'błąd');

ale niestety ostatni return nie działa w ogóle, więc pewnie odesłanie z errorami występuje w $this->validate
Pyton_000
https://laravel.com/docs/5.2/validation#oth...tion-approaches Tu masz rozwiązanie swojego problemu smile.gif

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.