Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inny]Laravel i Validate jak sprawdzic tylko jedno pole formularza przed submit, [LARAVEL]
jarober77
post 21.03.2021, 20:31:31
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 8.04.2019

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


Witam!

Przykładowa sytuacja: uzytkownik wypelnia formularz i chcemy by w ajaxie od razu sprawdzic czy podany uzytkownik nie wystepuje juz w bazie.
Oczywiscie validacja formularza przy zapisie dziala dobrze.

W klasie FormRequest mamy funkcjerules i messages. Jednak walidacja odpalana jest dla calego formularza.
Jaki jest zgodny ze sztuką sposob zrobienia tego w larawerze?
Go to the top of the page
+Quote Post
LowiczakPL
post 22.03.2021, 10:40:06
Post #2





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

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


Czy to w Laravelu czy w dowolnym innym frameworku albo czystym PHP, moje sprawdzone sposoby to:

robisz event na submit i 1.
robisz event na pole e-mail i jak user z niego wyjdzie to 1.


1. blokujesz submit
2. sprawdzasz najpierw czy user jest nie występuje w bazie jak jest true to pozwalasz na submit


Ten post edytował LowiczakPL 22.03.2021, 10:40:55


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
Go to the top of the page
+Quote Post
jarober77
post 22.03.2021, 12:59:46
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 8.04.2019

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


No zgoda to logiczne, tak trzeba zrobic. Tylko mi chodzi o to SPRAWDZENIE czy user istnieje powinno byc z wykorzystaniem utworzonej juz rule w obiekcie RequestFrom. Tak bylo by elegancko. Oczywiscie moge utworzyć funkcje w controlerze, ktora bede ajaxsem wywilywac i tam ponownie uruchomic Validation tylko dla tego pola ale bede musial regule validacji pola ponownie kopiować. Mam nadzieje ze jest jakis sposob na to by wykorzystac juz RequestFrom i utworzone w nim reguły w funkcji rules()
Go to the top of the page
+Quote Post
viking
post 22.03.2021, 15:17:11
Post #4





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Zależy jak masz napisane i co walidujesz. Jeżeli sprawdzanie zajętego loginu to oddzielna akcja to i powinna mieć nowy walidator. Jeżeli masz 100 pól to nie będziesz kombinować jak je ominąć żeby to jedno przeszło. Możesz się posłużyć sometimes|required i nullable.


--------------------
Go to the top of the page
+Quote Post
LowiczakPL
post 22.03.2021, 20:59:13
Post #5





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

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


nie możesz po prostu zrobić tego w ten sposób, jak napisałem?

  1. public function checkEmail(Request $request){
  2. $email = $request->input('email');
  3. $isExists = \App\User::where('email',$email)->first();
  4. if($isExists){
  5. return response()->json(['exists' => true]);
  6. }else{
  7. return response()->json(['exists' => false]);
  8. }
  9. }


Ten post edytował LowiczakPL 22.03.2021, 21:03:01


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
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: 11.05.2024 - 04:16