Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inny][Laravel 5.2] Własne komunikaty błędów podczas logowania
miccom
post 5.05.2018, 20:47:37
Post #1





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


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.


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
SmokAnalog
post 6.05.2018, 00:55:48
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Pyton_000
post 6.05.2018, 07:17:57
Post #3





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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!',
    ],
],
Go to the top of the page
+Quote Post
r4xz
post 6.05.2018, 10:59:50
Post #4





Grupa: Zarejestrowani
Postów: 673
Pomógł: 106
Dołączył: 31.12.2008

Ostrzeżenie: (0%)
-----


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

Ten post edytował r4xz 6.05.2018, 11:02:13


--------------------
Go to the top of the page
+Quote Post
miccom
post 6.05.2018, 16:01:33
Post #5





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


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ę?


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
r4xz
post 6.05.2018, 16:03:54
Post #6





Grupa: Zarejestrowani
Postów: 673
Pomógł: 106
Dołączył: 31.12.2008

Ostrzeżenie: (0%)
-----


To jest metoda dostarczana przez Laravel wraz z dziedziczeniem po klasie Controller - https://laravel.com/docs/5.2/validation#qui...alidation-logic


--------------------
Go to the top of the page
+Quote Post
miccom
post 6.05.2018, 16:40:56
Post #7





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


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


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
Pyton_000
post 7.05.2018, 07:33:13
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


https://laravel.com/docs/5.2/validation#oth...tion-approaches Tu masz rozwiązanie swojego problemu smile.gif

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 13:37