Maison > développement back-end > tutoriel php > Comment valider les paramètres d'itinéraire dans Laravel ?

Comment valider les paramètres d'itinéraire dans Laravel ?

PHPz
Libérer: 2023-09-01 14:42:02
avant
870 Les gens l'ont consulté

Comment valider les paramètres ditinéraire dans Laravel ?

Dans Laravel, les routes sont définies dans le dossier paths/. Les routes sont définies dans le fichier web.php. Ce fichier est créé une fois l'installation de Laravel terminée. Le routage Laravel accepte les fonctions URI et de fermeture comme indiqué ci-dessous -

use Illuminate\Support\Facades\Route;
Route::get('/student', function () {
   return 'Hello Student';
});
Copier après la connexion

Les routes définies dans web/routes.php sont affectées au groupe middleware Web, et elles Possède un état de session et une protection CSRF. Vous pouvez également appeler le contrôleur sur l'itinéraire Comme indiqué ci-dessous -

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\StudentController;
Route::get('student', [StudentController::class, 'index']);
Copier après la connexion

Voici les méthodes de routage que vous pouvez utiliser dans votre application :

  • Route::get($ uri, $fonction de rappel ou contrôleur);

  • Route::post($uri, $fonction de rappel ou contrôleur);

  • Route::put($uri, $fonction de rappel ou contrôleur);

  • Route::patch($uri, $fonction de rappel ou contrôleur);

  • Route::delete($uri, $fonction de rappel ou contrôleur);

  • Route::options($uri, $fonction de rappel ou contrôleur);

Vérification des paramètres d'itinéraire

Les paramètres d'itinéraire sont placés entre accolades et le nom donné contient des caractères alphanumériques. En plus des caractères alphanumériques, vous pouvez également utiliser des traits de soulignement lors de la sélection des noms de paramètres de routage.

Grammaire

La syntaxe des paramètres de routage est la suivante −

Route::get('/user/{myid}', function ($myid) {
   //
});
Copier après la connexion

Ici myid est le paramètre de routage que nous souhaitons utiliser davantage.

Plusieurs paramètres de routage

Vous pouvez avoir plusieurs paramètres d'itinéraire comme indiqué dans la syntaxe ci-dessous.

Route::get('/students/{post}/feedbacks/{feedback}', function ($postId, $feedbackId) {
   //
});
Copier après la connexion

Dans le cas ci-dessus, il existe deux paramètres de routage : {post} et {feedback}

Paramètres facultatifs

Vous pouvez également ajouter des paramètres facultatifs aux itinéraires. Les paramètres facultatifs ne sont pas toujours disponibles et sont indiqués par ? après le paramètre. La syntaxe des paramètres facultatifs est la suivante −

Route::get('/students/{myname?}', function ($myname = null) {
   return $myname;
});
Copier après la connexion

Ici, monnom est un paramètre facultatif.

Laravel dispose de quelques méthodes pour aider à valider les paramètres. Il s'agit de Where(), whereNumber(), WhereAlpha() et WhereAlphaNumeric().

La traduction chinoise de

Exemple 1

est :

Exemple 1

Utilisez la méthode Where()

La méthode

where() est définie sur la route et elle acceptera le nom du paramètre et la validation appliquée au paramètre. S'il y a plusieurs paramètres, il sera accepté sous forme de tableau, où les clés sont les noms des paramètres et les valeurs sont les règles de validation à appliquer aux clés.

Route::get('/student/{studentname}', function ($studentname) {
   return $studentname;
})->where('studentname', '[A-Za-z]+');
Copier après la connexion

Sortie

La sortie est −

disha
Copier après la connexion

Dans le cas ci-dessus, le nom de l'étudiant doit contenir A-Z ou a-z ou un mélange des deux. Les URL suivantes sont donc valides -

http://localhost:8000/student/DISHA
http://localhost:8000/student/dishaSingh.
Copier après la connexion

URL invalide -

http://localhost:8000/student/dishaSingh123
Copier après la connexion

Exemple 2

Vérifions maintenant plusieurs paramètres en utilisant la méthodewhere().

Route::get('/student/{studentid}/{studentname}', function ($studentid, $studentname){
   return $studentid."===".$studentname;
})->where(['studentid' => '[0-9]+', 'studentname' => '[a-z]+']);
Copier après la connexion
Dans le cas ci-dessus, les paramètres de routage sont studentid et studentname. l'identifiant d'étudiant est requis est un nombre compris entre 0 et 9 et le nom de l'étudiant doit être en minuscule.

Le contenu à traduire est le suivant : il doit s'agir d'un nombre compris entre 0 et 9 et le nom de l'étudiant doit être en minuscule.

Sortie

Le résultat ci-dessus est −

12===disha
Copier après la connexion
Copier après la connexion

L'URL valide ci-dessus est −

http://localhost:8000/student/12/disha
http://localhost:8000/student/01/disha
Copier après la connexion

URL invalide -

http://localhost:8000/student/01/DISHA
http://localhost:8000/student/abcd/disha
Copier après la connexion

Utilisez WhereNumber()

Exemple

Vous devez transmettre les paramètres d'itinéraire dont vous souhaitez que les valeurs soient valides uniquement -

Route::get('/student/{studentid}/{studentname}', function ($studentid, $studentname) {
   return $studentid."===".$studentname;
})->whereNumber('studentid')->where('studentname','[a-z]+');
Copier après la connexion

Sortie

La sortie du code ci-dessus est −

12===disha
Copier après la connexion
Copier après la connexion

UtilisezwhereAlpha()

Exemple

Vous devez transmettre le paramètre d'itinéraire pour lequel vous souhaitez avoir une valeur alpha -

Route::get('/student/{studentid}/{studentname}', function ($studentid, $studentname) {
   return $studentid."===".$studentname;
})->whereNumber('studentid')->whereAlpha('studentname');
Copier après la connexion

Sortie

La sortie du code ci-dessus est −

12===dishaSingh
Copier après la connexion

UtilisezwhereAlphaNumeric()

Exemple

Vous devez transmettre le paramètre d'itinéraire pour lequel vous souhaitez avoir une valeur alphanumérique−

Route::get('/student/{studentid}/{studentname}', function ($studentid, $studentname) {
   return $studentid."===".$studentname;
})->whereNumber('studentid')->whereAlphaNumeric ('studentname');
Copier après la connexion

Sortie

Le résultat sera -

12===dishaSingh122
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal