Cum se anulează un formular.
Bios: 08.04.2016
Ultima actualizare
Deci, avem la dispoziție diverse elemente pe care le putem folosi pe formular. Putem introduce diferite valori în ele. Cu toate acestea, utilizatorii introduc adesea valori care nu sunt în întregime corecte: de exemplu, se așteaptă să fie introduse numere, dar utilizatorul introduce litere etc. Și pentru a preveni și a verifica introducerea incorectă în HTML5, există un mecanism de validare. Avantajul utilizării validării în HTML5 este că utilizatorul după introducere incorectă
poate primi imediat un mesaj de eroare și poate face modificările corespunzătoare datelor introduse.
Pentru a crea validarea elementelor de formular HTML5, sunt utilizate o serie de atribute:
necesar : necesită introducerea unei valori. Pentru elemente textarea, selectați, introduceți (cu tip text, parolă, casetă de selectare, radio, fișier, datetime-local, dată, lună, oră, săptămână, număr, e-mail, url, căutare, tel)
min și max : valori minime și maxime permise. Pentru un element de intrare cu tipul datetime-local, date, month, time, week, number, range
atribut necesar
Atributul necesar necesită prezenta unei valori:
Validare în HTML5
Log in:
Parolă:
Dacă nu introducem date în aceste câmpuri, lăsându-le goale, și facem clic pe butonul de trimitere, browserul ne va afișa mesaje de eroare, iar datele nu vor fi trimise la server: În funcție de browser, redarea mesajului poate diferi ușor. De asemenea, granițele câmp nevalid
intrările pot apărea roșii. De exemplu, comportamentul la trimiterea de mesaje goale în Firefox:Atribute max și min
Atributul necesar necesită prezenta unei valori:
Pentru a limita intervalul de valori de intrare, sunt utilizate atributele max și min:
Vârstă:
atribut model
Atributul necesar necesită prezenta unei valori:
Atributul model specifică modelul cu care datele ar trebui să se potrivească. Pentru a defini un șablon, limbajul așa-numitului . Să ne uităm la cele mai simple exemple:
Telefon: Aici pentru a introduce numărul de telefon utilizați\+\d-\d(3)-\d(3)-\d(4) . Înseamnă că primul element din număr ar trebui să fie semnul plus +. Expresia \d reprezintă orice cifră de la 0 la 9. Expresia \d(3) reprezintă trei cifre consecutive, iar \d(4) reprezintă patru cifre consecutive. Adică, această expresie va corespunde unui număr de telefon în formatul „+1-234-567-8901”.
Dacă introducem date care nu se potrivesc cu acest model și facem clic pe trimite, browserul va afișa o eroare:
Dezactivarea validăriiValidarea nu este întotdeauna de dorit; uneori trebuie să o dezactivați. Și în acest caz, putem folosi fie atributul novalidate de pe elementul formular, fie atributul formnovalidate de pe butonul de trimitere:
Atributul necesar necesită prezenta unei valori:
Atributul model specifică modelul cu care datele ar trebui să se potrivească. Pentru a defini un șablon, limbajul așa-numitului . Să ne uităm la cele mai simple exemple:
Un exemplu de ceea ce putem realiza poate fi văzut în exemplul de mai jos. Exemplul include, de asemenea, validarea pentru introducerea corectă a e-mailului. Mai jos voi arăta două opțiuni pentru scripturi cu și fără validare prin e-mail.
După cum puteți vedea, până la completarea tuturor câmpurilor, scriptul nu vă va permite să trimiteți formularul, iar adresa corectă trebuie introdusă în câmpul de e-mail. În primul rând, vă voi arăta cum să o faceți verificare simplă pentru a completa câmpurile fără verificări prin e-mail. Ce se întâmplă dacă formularul dvs. nu are acest câmp și trebuie să verificați doar câmpul de text, astfel încât să nu fie gol și notificările goale să nu vină pe e-mailul dvs.
Pentru a ne implementa planul, trebuie mai întâi să creăm formularul în sine. Poate îl aveți deja, dar dacă doriți să introduceți acest material în el, va trebui să îl adaptați la forma dvs. Voi arăta totul folosind propriul meu exemplu. Formularul meu nu va trimite nimic, acest articol nu are un handler pentru trimiterea scrisorilor, pentru a nu complica materialul. Managerul de trimitere a e-mailurilor este o altă poveste. În primul rând, codul HTML al formularului în sine.
Puteți vedea din cod că formularul nostru este format din trei câmpuri - nume, e-mail și câmp de testare. Mai sunt câteva puncte importante, care va fi necesar în orice caz pt funcționare corectă scenariu. Să o luăm în ordine.
- id="file_form" - ID pentru formularul nostru. ID-ul este necesar, acesta va fi folosit și în script.
- - blocul necesar. Acesta este un container pentru afișarea mesajelor de eroare din script. acest bloc poate fi plasat în afara formularului. Oferă-i orice stil. În exemplu, acesta este textul roșu care indică un câmp gol.
- onclick="frmotpr();"
- Toate câmpurile au, de asemenea, ID-uri și clase. De asemenea, vor fi necesare pentru scriptul nostru de validare. ID-ul câmpului de e-mail este deosebit de important pentru viitorul nostru script, care va verifica corectitudinea e-mailului introdus.
Acum ca să fie normal aspectîn formularul nostru, să adăugăm câteva stiluri CSS. Dacă le utilizați pe site-ul dvs., adăugați-le în fișierul dvs. de stiluri.
#file_form( width:300px; background:#fff; padding:15px; margin:3px; -webkit-border-radius:25px; -moz-border-radius:25px; border-radius:25px; box-shadow:0 0 10px rgba(0,0,0,.1); border:1px solid #36c; .in_pl( width:90%; margin-bottom:15px; padding:10px 15px; border-radius:25px; border:none; box -shadow:0 0 5px rgba(0,0,0,.2) inset:#fff ) .in_pl:focus( background:#fff; ) #sub_f( padding:5px 15px; border:none; border - radius:25px; box-shadow:0 0 2px rgba(0,0,0,.2); size:15px; color:#333; cursor: margin-bottom:10px; fundal:rgba(255,0,0,.2);)
Aceste stiluri stabilesc parametrii pentru formularul în sine, câmpurile și butoanele. Nu voi descrie toate liniile și ceea ce face fiecare, există tutoriale CSS pentru asta. Voi enumera doar cele două cele mai importante.
- #messenger sunt stiluri pentru același bloc cu ieșire de mesaj. Parametrul principal pentru această clasă este display:none. Adică ascundem inițial blocul.
- .notvalid sunt stiluri pentru clasa care vor fi atribuite de scriptul nostru câmpului care nu este completat sau completat incorect. Voi menționa din nou această clasă mai jos.
Acum că avem formă terminată sau ți-ai configurat formularul conform instrucțiunilor mele, i-ai adăugat ID-uri, ale mele sau ale tale, blocul necesarși evenimentul butonul, putem începe conectarea scriptului.
Din moment ce scriptul nostru funcționează cu folosind jQuery, trebuie conectat biblioteca jQuery. Dacă nu a fost conectat anterior, faceți acest lucru adăugând această linie:
Puteți citi unde și cum să adăugați corect biblioteca în articol -.
După bibliotecă, nu înaintea ei, ci după ea, trebuie să conectăm mult așteptatul nostru script de validare a formularelor. după cum am scris mai devreme, prima opțiune ar fi să verificați mai întâi câmpul pentru completare, fără a verifica corectitudinea e-mailului introdus. Scenariul în sine are următoarea vedere:
"necesar|min:5"));
Primul parametru transmis metodei make sunt datele de testat. Al doilea parametru sunt regulile care ar trebui aplicate acestora.
Utilizarea tablourilor pentru a specifica reguliRegulile multiple pot fi separate fie printr-o linie dreaptă (|), fie pot fi elemente de matrice individuale.
$validator = Validator::make(array("name" => "Dale"), array("name" => array("required", "min:5")));
Validarea mai multor câmpuri $validator = Validator::make(array("name" => "Dale", "password" => "badpassword", "email" => " [email protected]"), array ("nume" => "necesar", "parolă" => "obligatoriu|min:8", "email" => "obligatoriu|e-mail|unic"));Odată ce o instanță Validator a fost creată, metoda eșuează (sau trece) poate fi utilizată pentru a efectua validarea.
Dacă ($validator->fails()) ( // Datele transmise nu au reușit verificarea)
Dacă validatorul găsește erori, puteți obține mesajele sale astfel:
$mesaje = $validator->mesaje();
De asemenea, puteți obține o serie de reguli, date care nu au reușit verificarea, fără mesajele în sine:
$failed = $validator->failed();
Verificarea fișierelorClasa Validator conține mai multe reguli inițiale pentru validarea fișierelor, cum ar fi size , mimes și altele. Pentru a efectua verificări asupra fișierelor, pur și simplu transferați fișierele împreună cu alte date.
Cârlig după validareDupă finalizarea validării, Laravel vă poate rula funcția de închidere, în care puteți, de exemplu, să verificați ceva special sau să adăugați un fel de mesaj de eroare. Metoda after() este folosită pentru aceasta:
$validator = Validator::make(...); $validator->after(function($validator) ( if ($this->somethingElseIsInvalid()) ( $validator->errors()->add("câmp", "Ceva este în neregulă cu acest câmp!"); ) )); dacă ($validator->fails()) ( // )
Puteți adăuga mai multe după-uri dacă este necesar.
Validarea în controloriScrie cod complet validarea de fiecare dată când trebuie să validați datele este incomod. Prin urmare, Laravel oferă mai multe soluții pentru a simplifica această procedură.
Controlerul de bază App\Http\Controllers\Controller include trăsătura ValidatesRequests, care conține deja metode de validare:
/** * Salvați postarea pe blog.
Dacă validarea trece, codul continuă să se execute. Dacă nu, se aruncă o excepție Illuminate\Contracts\Validation\ValidationException. Dacă nu prindeți această excepție, cadrul o va prinde, va completa variabilele Flash cu mesaje de eroare de validare și va direcționa utilizatorul la pagina anterioară cu formă - tu însuți!
În cazul unei solicitări AJAX, redirecționarea nu are loc; framework-ul returnează un răspuns cu codul HTTP 422 și JSON cu erori de validare.
Codul de mai sus este similar cu acesta:
/** * Salvați postarea pe blog.
* * @param Solicitare $request * @return Răspuns */ public function store(Solicitare $request) ( $v = Validator::make($request->all(), [ "title" => "necesar|unic|max :255", "body" => "necesar", ]); if ($v->fails()) ( return redirect()->back()->withErrors($v->errors()); ) // )Schimbări de format de eroare
Dacă doriți să personalizați mesajele de eroare de validare care sunt stocate în variabilele flash de sesiune în timpul unei redirecționări, înlocuiți metoda formatValidationErrors din controlerul dvs.:/** * (@inheritdoc) */ protected function formatValidationErrors(\Illuminate\Validation\Validator $validator) ( return $validator->errors()->all(); ) Validare interogare Pentru a implementa scenarii de validare mai complexe, s-ar putea să vă fie convenabil să utilizați așa-numitele Cereri de formular. Acest clase speciale
Solicitări HTTP care conțin logica de validare. Ei procesează cererea înainte ca aceasta să ajungă la controlor.
Pentru a crea o clasă de solicitare, utilizați comanda make:request artisan:
Php artisan make:request StoreBlogPostRequest
Clasa va fi creată în folderul app/Http/Requests. Adăugați regulile de validare necesare la metoda de reguli:
/** * Obțineți regulile de validare care se aplică cererii.
* * @return array */ public function rules() ( return [ "title" => "necesar|unic|max:255", "body" => "necesar", ]; )
Pentru ca cadrul să intercepteze cererea înaintea controlorului, adăugați această clasă la argumentele metodei controlerului cerute:
Cu utilizarea corectă a validării interogărilor, puteți fi sigur că controlerele dvs. conțin întotdeauna numai date de intrare validate!În cazul validării nereușite, cadrul completează variabilele flash cu erori de validare și returnează o redirecționare către pagina anterioară. În cazul unei solicitări AJAX, este returnat un răspuns cu codul 422 și JSON cu erori de validare. Control acces. De exemplu, dacă un utilizator încearcă să editeze un comentariu la o postare, el este autorul?
/** * Stabiliți dacă utilizatorul este autorizat să facă această solicitare.
* * @return bool */ funcția publică autorizare() ( $commentId = $this->route("comentare"); return Comment::where("id", $commentId) ->where("user_id", Auth: :id())->există(); Observați apelul metodei route() de mai sus. Această metodă vă oferă acces la parametrii din adresa URL (înîn acest caz,
acesta este (comentar)), definit în traseul:
Route::post("comentare/(comentare)");
Dacă metoda autorizare returnează false, cadrul generează un răspuns cu codul HTTP 403 și îl trimite imediat. Metoda controlerului nu este executată.
/** * Stabiliți dacă utilizatorul este autorizat să facă această solicitare.* * @return bool */ public function authorize() ( returneaza adevarat; ) Schimbări de format de eroare în variabilele Flash Dacă doriți să personalizați mesajele de eroare de validare care sunt stocate în variabilele flash de sesiune în timpul unei redirecționări, înlocuiți metoda formatValidationErrors din
clasa de bazăsolicitări (App\Http\Requests\Request):
/** * (@inheritdoc) */ protected function formatValidationErrors(\Illuminate\Validation\Validator $validator) ( return $validator->errors()->all(); ) Lucrul cu mesaje de eroareDupă apelarea metodei mesaje a obiectului Validator, veți primi un obiect MessageBag, care are un set de metode utile pentru accesarea mesajelor de eroare.
Primirea primului mesaj pentru câmpul echo $messages->first("email"); Obținerea tuturor mesajelor pentru un câmp foreach ($messages->get("email") ca $message) ( // ) Obținerea tuturor mesajelor pentru toate câmpurile foreach ($messages->all() ca $message) ( // ) Validare pentru prezența unui mesaj pentru câmpul if ($messages->has("email")) ( // ) Primirea unei erori în formatul specificat echo $messages->first("email", "");:mesaj
") ca $message) ( // ) Erori și modele
Rețineți că atunci când verificările eșuează, trecem obiectul Validator obiectului Redirect folosind metoda withErrors. Această metodă va stoca mesaje de eroare în variabile flash de sesiune unică, făcându-le astfel disponibile pentru următoarea solicitare.
Cu toate acestea, rețineți că nu transmitem View::make("user.register"); variabilele $errors la șablon. Laravel însuși verifică datele sesiunii pentru prezența variabilelor și le transmite automat șablonului dacă sunt disponibile. Astfel, este important să rețineți că variabila $errors va fi disponibilă pentru toate șabloanele dvs. în orice moment, la orice solicitare. . Acest lucru vă permite să presupuneți că variabila $errors este întotdeauna definită și poate fi utilizată în siguranță. Variabila $errors este o instanță a clasei MessageBag.
Deci, după redirecționare, puteți utiliza variabila $errors care este setată automat în șablon:
Numit MessageBag
Dacă aveți mai multe formulare pe pagină, atunci puteți selecta numele obiectului MessageBag în care vor fi returnate texte de eroare, astfel încât să le puteți afișa corect pentru formularul dorit.
Returnare redirecționare(„înregistrare”)->withErrors($validator, „login”);
Obțineți text de eroare din MessageBag cu numele de conectare:
Reguli de validare
Mai jos este o listă cu toate regulile disponibile și funcțiile acestora:
acceptatCâmpul trebuie să fie în valoare Da, pe sau 1 . Acest lucru este util pentru verificarea acceptării regulilor și licențelor.
active_urlCâmpul trebuie să fie o adresă URL validă, accesibilă prin funcția checkdnsrr.
după: dataCâmpul trebuie să fie o dată ulterioară data
alfaCâmpul trebuie să conțină numai caractere alfabetice.
alpha_dashCâmpul trebuie să conțină numai caractere alfabetice, numere, caractere de subliniere (_) și cratime (-).
alpha_numCâmpul trebuie să conțină numai caractere alfabetice și numere.
matriceCâmpul trebuie să fie o matrice.
înainte: dataCâmpul trebuie să fie o dată anterioară data. Șirurile sunt convertite în date folosind funcția strtotime.
între: min,maxCâmpul trebuie să aibă o dimensiune cuprinsă între min la max. Șirurile, numerele și fișierele sunt tratate în mod similar cu regula de dimensiune.
booleanCâmpul trebuie să fie boolean. Valorile permise sunt true , false , 1 , 0 , "1" și "0" .
confirmatValoarea câmpului trebuie să se potrivească cu valoarea câmpului cu acel nume, plus foo_confirmation . De exemplu, dacă câmpul pentru parolă este bifat, atunci câmpul password_confirmation care se potrivește cu valoarea trebuie să fie transmis la intrare.
dataCâmpul trebuie să fie data corecta conform functiei strtotime.
data_format: formatCâmpul trebuie să se potrivească cu formatul datei format conform funcției date_parse_from_format.
diferit: domeniuValoarea câmpului care se verifică trebuie să fie diferită de valoarea câmpului domeniu.
e-mailCâmpul trebuie să fie o adresă de e-mail validă.
exista: masă,coloanăCâmpul trebuie să existe în tabelul dat baza de date.
Usor de folosit:
"state" => "există:state"
Specificarea unui nume de câmp într-un tabel:
"state" => "există:state,abreviere"
De asemenea, puteți specifica mai multe condiții pentru a fi adăugate la interogarea „UNDE”:
"email" => "există:staff,email,account_id,1"
imagineFișierul încărcat trebuie să conțină o imagine format jpeg, png, bmp, gif sau svg.
în: foo,bar,...Valoarea câmpului trebuie să fie una dintre următoarele ( foo, bar etc.).
întregCâmpul trebuie să aibă o valoare întreagă validă.
ipCâmpul trebuie să fie o adresă IP validă.
max: valoareValoarea câmpului trebuie să fie mai mică sau egală cu valoare
mime: foo,bar,...Tipul MIME al fișierului încărcat trebuie să fie unul dintre cele enumerate.
Usor de folosit:
"photo" => "mimes:jpeg,bmp,png"
min: valoareValoarea câmpului trebuie să fie mai mare decât valoare. Șirurile, numerele și fișierele sunt tratate în mod similar cu regula.
not_in: foo,bar,...Valoarea câmpului nu trebuie să fie una dintre următoarele ( foo, bar etc.).
numericCâmpul trebuie să aibă o valoare numerică sau fracțională validă.
regex: modelCâmpul trebuie să se potrivească cu expresia regulată dată.
Avertisment: atunci când utilizați această regulă, poate fi necesar să enumerați alte reguli ca elemente de matrice, mai ales dacă expresia conține caracterul linie verticală (|).
necesarCâmpul testat trebuie să fie prezent și să aibă o valoare nevidă.
necesar_dacă: domeniu,valoare,...Câmpul testat trebuie să fie prezent și să aibă o valoare nevidă dacă celălalt câmp domeniu prezent și are oricare dintre semnificațiile valoare.
necesar_cu: foo,bar,...Cel puțin unul dintre câmpurile enumerate este prezent și are o valoare nevide ( foo, bar etc.).
necesar_cu_toate: foo,bar,...Câmpul testat trebuie să fie prezent și să aibă o valoare nevide, dar numai dacă toate câmpurile enumerate sunt prezente și au o valoare nevidă ( foo, bar etc.).
necesar_fara: foo,bar,...Câmpul care se verifică trebuie să fie prezent și să aibă o valoare nevid, dar numai dacă cel puțin unul dintre câmpurile listate nu este prezent sau are o valoare goală ( foo, bar etc.).
necesar_fără_toate: foo,bar,...Câmpul verificat trebuie să fie prezent și să aibă o valoare nevide, dar numai dacă toate câmpurile enumerate nu sunt prezente sau au valori goale ( foo, bar etc.).
aceleaşi: domeniuCâmpul trebuie să aibă aceeași valoare ca și câmpul domeniu.
dimensiune: valoareCâmpul trebuie să se potrivească valoare dimensiune. Pentru șiruri, aceasta este lungimea, pentru numere este numărul, pentru fișiere este dimensiunea în kiloocteți.
fus orarCâmpul trebuie să conțină identificatorul de fus orar, unul dintre cele enumerate în funcția php timezone_identifiers_list
unic: masă,coloană,cu excepţia,idColumnValoarea câmpului trebuie să fie unică în tabelul de bază de date dat. Dacă nu este specificată coloana, va fi folosit numele câmpului.
Utilizare simplă „email” => „unique:utilizatori” Specificarea unui nume de câmp în tabelul „email” => „unique:users,email_address” Ignorarea unui anumit ID „email” => „unique:users,email_address,10” Adăugarea conditii suplimentareDe asemenea, puteți specifica mai multe condiții pentru a fi adăugate la interogarea „UNDE”:
"email" => "unic:utilizatori,adresa_e-mail,NULL,id,account_id,1"
În regula de mai sus, numai rândurile cu account_id egal cu 1 vor fi incluse în verificare.
urlCâmpul trebuie să fie o adresă URL validă.
Notă: este folosită funcția PHP filter_var
Reguli condiționateUneori trebuie să validați un anumit câmp numai atunci când este prezent în datele de intrare. Pentru a face acest lucru, adăugați regula uneori:
$v = Validator::make($date, array("email" => "uneori|necesar|email",));
În exemplul de mai sus, câmpul de e-mail va declanșa validarea numai atunci când există $data[„email”].
Reguli condiționale complexeUneori doriți ca un câmp să aibă o valoare numai dacă un alt câmp are o valoare, de exemplu, mai mare de 100. Sau este posibil să solicitați doar două câmpuri să aibă o valoare atunci când este specificat și un al treilea. Acest lucru este ușor de realizat prin reguli condiționate. Mai întâi creați un obiect Validator cu un set de reguli statice care nu se schimbă niciodată:
$v = Validator::make($date, array("email" => "necesar|e-mail", "jocuri" => "necesar|numeric",));
Acum să presupunem că aplicația dvs. este scrisă pentru colecționari de jocuri. Dacă se înregistrează un colecționar cu peste 100 de jocuri, atunci vrem să-i întrebăm de ce au nevoie de atâtea. De exemplu, pot avea un magazin sau poate doar le place să le colecteze. Deci, pentru a adăuga o astfel de regulă condiționată, folosim metoda Validator.
$v->uneori("motiv", "necesar|max:500", function($input) ( return $input->jocuri >= 100; ));
Primul parametru al acestei metode este numele câmpului pe care îl verificăm. Al doilea parametru este regula pe care vrem să o adăugăm dacă funcția de închidere transmisă (al treilea parametru) returnează true . Această metodă vă permite să creați cu ușurință reguli complexe de validare a intrărilor. Puteți chiar să adăugați aceleași reguli condiționate în mai multe câmpuri în același timp:
$v->uneori(array(„motiv”, „cost”), „necesar”, function($input) ( return $input->jocuri >= 100; ));
Notă: Parametrul $input transmis la închidere este un obiect Illuminate\Support\Fluent și poate fi folosit pentru a citi intrările și fișierele inspectate.
Mesaje de eroare propriiPuteți transmite propriile mesaje de eroare în locul celor implicite. Există mai multe moduri de a face acest lucru.
Transmiterea mesajelor dvs. către Validator $messages = array("required" => "Field:attribute trebuie completat.",); $validator = Validator::make($input, $reguli, $mesaje);Notă: linia:atributul va fi înlocuit cu numele câmpului care este verificat. Puteți folosi și alte șiruri variabile.
Folosind alte variabile șir $messages = array("same" => "Valorile lui:attribute și:other trebuie să se potrivească.", "size" => "Câmpul:attribute trebuie să fie exact:size.", "între " => "Valoarea lui:attribute trebuie să fie de la:min la:max.", "in" => "Câmpul:attribute trebuie să aibă una dintre următoarele valori: :values",); Specificarea propriului mesaj pentru un anumit câmpUneori poate fi necesar să specificați mesajul pentru un câmp separat.
$messages = array("email.required" => "Trebuie să știm adresa ta de e-mail!",);
Specificarea propriilor mesaje în fișierul de localizareDe asemenea, este posibil să definiți mesaje de validare în fișierul de localizare în loc să le transmiteți direct Validatorului. Pentru a face acest lucru, adăugați mesaje în matrice fișier personalizat localizare app/lang/xx/validation.php .
"custom" => array("email" => array("required" => "Trebuie să știm adresa ta de e-mail!",),),),
Reguli proprii de validare Înregistrați-vă propria regulă de validareLaravel vine cu o mulțime de reguli utile din cutie, dar poate fi necesar să creați propriile reguli. O modalitate de a înregistra o regulă personalizată este prin metoda Validator::extend.
Validator::extend("foo", function($atribut, $valoare, $parametri) ( returneaza $valoare == "foo"; }); !}
Notă: numele regulii trebuie să fie în formatul_cu_liniere de subliniere.
Funcția de închidere trecută primește trei parametri: numele câmpului care este verificat $attribute , valoarea câmpului $valoare și matricea de parametri $parametri trecuți regulii.
În loc de o funcție, puteți trece o referință la o metodă de clasă la metoda extinde:
Validator::extend("foo", "FooValidator@validate");
Rețineți că va trebui, de asemenea, să definiți un mesaj de eroare pentru noua regulă. Puteți face acest lucru fie trecându-l ca o matrice de șiruri la Validator, fie scriindu-l într-un fișier de localizare.
Extinderea clasei ValidatorÎn loc să utilizați funcții de închidere pentru a extinde setul de reguli disponibile, puteți extinde clasa Validator în sine. Pentru a face acest lucru, creați o clasă care moștenește Illuminate\Validation\Validator . Puteți adăuga noi metode de validare pornind numele lor cu validate .