Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inny]Laravel i Validate jak sprawdzic tylko jedno pole formularza przed submit
Forum PHP.pl > Forum > PHP > Frameworki
jarober77
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?
LowiczakPL
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
jarober77
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()
viking
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.
LowiczakPL
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. }
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-2024 Invision Power Services, Inc.