Come scrivere e applicare regole di convalida in Laravel 11
Hai mai avuto problemi a controllare i dati utente nelle tue app web? È importante assicurarsi che questi dati siano corretti, sicuri e utili. Tuttavia, impostare delle buone regole di convalida può essere difficile, soprattutto con moduli e dati complessi.
E se ci fosse un modo più semplice? Laravel ha un sistema di convalida forte. Rende facile impostare e usare le regole di convalida. Con Laravel, non hai bisogno di scrivere un lungo codice di convalida per tenere sotto controllo i dati della tua app.
Quindi, come puoi usare il sistema di convalida di Laravel? Questo post del blog ti guiderà. Contiene istruzioni passo dopo passo, esempi di codice e suggerimenti pratici. Che tu sia un novizio di Laravel o uno sviluppatore esperto, questo blog è per te.
6 minuti
Perché è importante la convalida dei dati?
La convalida dei dati garantisce che i dati siano corretti e affidabili.
Questo è un aspetto fondamentale perché le decisioni basate su dati sbagliati possono essere costose. Il controllo dei dati impedisce che gli errori entrino nel sistema dati. Risparmia tempo e assicura che altri processi che utilizzano questi dati non vengano rovinati.
Rende inoltre i dati coerenti utilizzando regole stabilite per il formato e la struttura dei dati. Ciò è importante quando si ha a che fare con molti dati o quando molte persone li utilizzano. I dati coerenti facilitano la collaborazione tra team.
Consideriamo l'esempio di un negozio di e-commerce .
Quando i clienti effettuano un ordine, forniscono informazioni come nome, indirizzo e dettagli di pagamento. Se questi dati non vengono convalidati, informazioni non corrette potrebbero portare a transazioni fallite, alla consegna all'indirizzo sbagliato o persino a problemi di sicurezza.
Pertanto, la convalida dei dati è fondamentale per garantire il buon funzionamento del negozio e la soddisfazione del cliente.
Regole di convalida in Laravel
Quando si creano app web con Laravel , è importante assicurarsi che gli input degli utenti siano corretti. Laravel semplifica questa operazione con il suo sistema di controllo. Conoscere le diverse regole di controllo aiuta ad assicurarsi che i dati siano corretti.
Le regole di controllo di Laravel coprono molte situazioni. Ecco alcune regole chiave:
RegoleDescrizionerequiredGarantisce che il campo sia presente nei dati di input.numericVerifica che l'input sia un valore numerico.emailControlla se l'input è un indirizzo email valido.alphaVerifica che l'input contenga solo caratteri alfabetici.minSpecifica il valore minimo consentito per l'input numerico.maxImposta il valore massimo consentito per l'input numerico.uniqueGarantisce che il valore di input sia univoco in una tabella di database specificata.confirmedAbbina il valore di input a un campo di conferma.
Applica regole di convalida
È un processo semplice che prevede lo sfruttamento della funzionalità di convalida fornita dal framework. Di seguito è riportato un esempio di base di applicazione delle regole di convalida all'interno di un controller:
public function store(Request $request)
{
$validatedData = $request->validate();
// Process the validated data
}
Impostare Laravel per la convalida dei dati
Aggiungi regole in modo condizionale
In scenari reali, potresti dover applicare regole di convalida in base a determinate condizioni. Laravel ti consente di aggiungere regole in modo condizionale al tuo processo di convalida.
$rules = ;
if ($someCondition) {
$rules = 'required|string';
}
$request->validate($rules);
Regole di convalida avanzate
Quando i siti web diventano più complessi, abbiamo bisogno di modi migliori per controllare i dati. Laravel ci aiuta a farlo con il suo potente sistema di controllo. Vediamo come puoi migliorare i tuoi controlli.
Regole personalizzate
Laravel ti consente di creare i tuoi controlli che si adattano alle esigenze del tuo sito web. Puoi aggiungerli al metodo di avvio del tuo AppServiceProvider.
use IlluminateSupportFacadesValidator;
Validator::extend('custom_rule', function ($attribute, $value, $parameters, $validator) {
// Your custom validation logic here
return $value == 'custom_value';
});
Puoi utilizzare questa convalida personalizzata come qualsiasi altra.
$request->validate();
Oggetti regola
Laravel 10 ha introdotto gli oggetti Rule. Questi ti permettono di organizzare meglio i tuoi controlli. Puoi creare un oggetto Rule usando l'interfaccia IlluminateContractsValidationRule.
use IlluminateContractsValidationRule;
class CustomRule implements Rule
{
public function passes($attribute, $value)
{
// Your validation logic here
return $value == 'custom_value';
}
public function message()
{
return 'The validation failed for this custom rule.';
}
}
È possibile utilizzare questo oggetto Regola quando si convalidano i dati.
$request->validate(,
]);
Utilizzare regole di convalida avanzate
L'utilizzo di oggetti Rule rende i tuoi dati più puliti. Puoi effettuare una convalida avanzata utilizzando più oggetti Rule.
use AppRulesCustomRule1;
use AppRulesCustomRule2;
$request->validate(,
'field2' => ,
]);
Messaggi di convalida personalizzati in linea
Puoi fornire messaggi di errore personalizzati quando convalidi i dati. Ciò è utile quando i messaggi predefiniti non sono abbastanza specifici:
$request->validate(, );
Regole di convalida personalizzate
Le regole di convalida personalizzate in Laravel consentono agli sviluppatori web di effettuare controlli adatti ai loro siti web. Questi controlli possono gestire esigenze di dati uniche o controlli di logica aziendale. Vediamo come creare e utilizzare regole di controllo personalizzate in Laravel.
Un modo per creare regole di controllo personalizzate è aggiungerle al Validator di Laravel. Nel tuo AppServiceProvider, all'interno del metodo boot, puoi usare il metodo extend per aggiungere una regola personalizzata.
use IlluminateSupportFacadesValidator;
Validator::extend('custom_rule', function ($attribute, $value, $parameters, $validator) {
// Your custom validation logic here
return $value == 'desired_value';
});
Ora puoi utilizzare questa regola personalizzata quando convalidi i dati:
$request->validate();
Utilizza regole di convalida personalizzate
Messaggi di convalida personalizzati
Puoi anche fornire messaggi di errore personalizzati per una migliore comprensione:
$request->validate(, );
Uso condizionale
Le regole di convalida personalizzate sono molto utili quando si hanno a che fare con controlli condizionali. È possibile utilizzare regole basate su situazioni specifiche:
$request->validate();
Validazione della richiesta del modulo
Form Request Validation consente di centralizzare la logica di convalida per una specifica richiesta HTTP . Invece di ingombrare i controller con regole di convalida, è possibile creare classi Form Request dedicate, mantenendo il codice organizzato e facile da gestire.
Crea classi di richiesta modulo
Passaggio 1: Genera classi di richiesta modulo
Per creare una classe Form Request, puoi utilizzare lo strumento da riga di comando artisan di Laravel:
php artisan make:request MyFormRequest
Questo comando genererà una nuova classe Form Request nella directory AppHttpRequests. Apri il file generato e troverai un metodo rules in cui puoi definire le tue regole di convalida.
public function rules()
{
return ;
}
Passaggio 2: creare richieste di modulo nel controller
Ora che hai creato la classe Form Request, puoi utilizzarla nel metodo del controller:
use AppHttpRequestsMyFormRequest;
public function store(MyFormRequest $request)
{
// The request has already been validated at this point
// Your business logic goes here
}
Laravel convalida automaticamente la richiesta in arrivo utilizzando le regole definite nella classe Form Request prima di raggiungere il metodo del controller.
Autorizza le richieste del modulo
Le Form Request non solo gestiscono la convalida, ma forniscono anche un modo comodo per autorizzare la richiesta in arrivo. Puoi definire un metodo di autorizzazione nella tua classe Form Request:
public function authorize()
{
// Return true or false based on authorization logic
return $user->can('create', Post::class);
}
Se il metodo authorize restituisce false, Laravel interromperà automaticamente la richiesta con una risposta 403 Forbidden.
Personalizza i messaggi di errore
Form Requests semplifica la personalizzazione dei messaggi di errore. Puoi sovrascrivere il metodo messages nella tua classe Form Request:
public function messages()
{
return ;
}
Gestire i reindirizzamenti di convalida
Quando una convalida di Form Request fallisce, Laravel reindirizzerà automaticamente alla pagina precedente con gli errori di convalida segnalati alla sessione. Ciò semplifica il processo di informazione degli utenti sui problemi di convalida.
Ercole Palmeri
#PHPTutorial #SoftwareEngineering #tutorialdilaravelPHP https://bloginnovazione.it/regole-validazione-laravel/52617/
Commenti
Posta un commento