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

model : Specifică un model cu care datele de intrare trebuie să se potrivească. Pentru un element de intrare cu tip text, parola, email, url, search, tel

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ării

Validarea 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 reguli

Regulile 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șierelor

Clasa 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ă validare

După 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 controlori

Scrie 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 eroare

După 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", "");
  • Notă: În mod implicit, postările sunt formatate pentru a se potrivi cu Twitter Bootstrap.
  • Preluarea tuturor mesajelor într-un format dat pentru fiecare ($messages->all("

    :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:

    acceptat

    Câmpul trebuie să fie în valoare Da, pe sau 1 . Acest lucru este util pentru verificarea acceptării regulilor și licențelor.

    active_url

    Câmpul trebuie să fie o adresă URL validă, accesibilă prin funcția checkdnsrr.

    după: data

    Câmpul trebuie să fie o dată ulterioară data

    alfa

    Câmpul trebuie să conțină numai caractere alfabetice.

    alpha_dash

    Câmpul trebuie să conțină numai caractere alfabetice, numere, caractere de subliniere (_) și cratime (-).

    alpha_num

    Câmpul trebuie să conțină numai caractere alfabetice și numere.

    matrice

    Câmpul trebuie să fie o matrice.

    înainte: data

    Câmpul trebuie să fie o dată anterioară data. Șirurile sunt convertite în date folosind funcția strtotime.

    între: min,max

    Câ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.

    boolean

    Câmpul trebuie să fie boolean. Valorile permise sunt true , false , 1 , 0 , "1" și "0" .

    confirmat

    Valoarea 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.

    data

    Câmpul trebuie să fie data corecta conform functiei strtotime.

    data_format: format

    Câmpul trebuie să se potrivească cu formatul datei format conform funcției date_parse_from_format.

    diferit: domeniu

    Valoarea câmpului care se verifică trebuie să fie diferită de valoarea câmpului domeniu.

    e-mail

    Câ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"

    imagine

    Fiș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.).

    întreg

    Câmpul trebuie să aibă o valoare întreagă validă.

    ip

    Câmpul trebuie să fie o adresă IP validă.

    max: valoare

    Valoarea 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: valoare

    Valoarea 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.).

    numeric

    Câmpul trebuie să aibă o valoare numerică sau fracțională validă.

    regex: model

    Câ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ă (|).

    necesar

    Câ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: domeniu

    Câmpul trebuie să aibă aceeași valoare ca și câmpul domeniu.

    dimensiune: valoare

    Câ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 orar

    Câ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,idColumn

    Valoarea 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 suplimentare

    De 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.

    url

    Câmpul trebuie să fie o adresă URL validă.

    Notă: este folosită funcția PHP filter_var

    Reguli condiționate

    Uneori 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 complexe

    Uneori 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 proprii

    Puteț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âmp

    Uneori 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 localizare

    De 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 validare

    Laravel 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 .