Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [laravel] Validacja danych
Koldy
post
Post #1





Grupa: Zarejestrowani
Postów: 98
Pomógł: 1
Dołączył: 28.06.2009
Skąd: Great Britan

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


Witajcie,

chwile juz temu zaczalem pisac w laraverze, silnik bardzo mi sie spodobal i mysle ze komfort pracy jest wszystkim czego potrzebuje programista, wiec na razie nie zamierzam uciekac sie do innych opcji.

Mam pewien dylemat, bo problem to raczej nie jest.

Mianowicie, wiadomo ze validacje robimy w Laraverze tak:
  1. $validator = Validator::make($input, [
  2. 'email' => 'required|email',
  3. 'password' => 'required'
  4. ]);


ew. jeszcze messages jako 3 argument, ale ja mam ustawione custom messages w pliku jezykowym, co jest znacznie lepszym rozwiazaniem.

Chodzi o to, ze kod validacji np usera sie powtarza, nie zawsze wszystkie jego pola, ale zawsze cos sie powtarza, wiec wpadlem na pomysl zeby umiescic reguly w modelu, do ktorego walidacja nastepuje. np:
  1. public static $rules = [
  2. 'email' => 'required|max:50|email|unique:users',
  3. 'username' => 'sometimes|required|max:20|min:3|unique:users',
  4. 'password' => 'required|min:6',
  5. 'password2' => 'sometimes|required|same:password'
  6. ];

dodatkowo w modelu dodaje triata z metoda
  1. public static function validate($input) {
  2. return \Validator::make($input, (isset(self::$rules)) ? self::$rules : []);
  3. }


Wiec kod w konrolerze wyglada mniej wiecej tak:
  1. $input = Input::only('email', 'username', 'password', 'password2');
  2. $validator = User::validate($input);


Dzieki temu, sprawdzane sa tylko te wartosci ktore zostaly przekazane, z racji reguly 'sometimes', wszystko dziala ok, ale doszedlem do wniosku, ze po pierwsze lece na statykach, a dwa validacja nie koniecznie jest czescia modelu, wiec wymyslilem rozwiazanie zeby stworzyc osobna klase, ktora wepcham do serwisow, w wdziecznej nazwie Validator, a jej uzycie w kontrolerze bylo by mniej wiecej takie:
  1. $validator = Validator::user($input);


Cala validacja byla by zamknieta w klacie Validator i nie opieralaby sie na statykach, jednoczesnie mamy cala validacje aplikacji w jednym miejscu.

Pytanie wiec do expertow, czy dobrze kombinuje, czy moze lepiej zostawic to w modelu jak zrobilem na poczatku, a moze jeszcze macie jakies inne magiczne rozwiazanie?

Pozdrawiam


--------------------
$progress++;
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 21.08.2025 - 06:10