Maison  >  Article  >  développement back-end  >  Comment valider les paramètres d’itinéraire dans Laravel ?

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

PHPz
PHPzavant
2023-09-01 14:41:06788parcourir

Comment valider les paramètres d’itiné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';
});

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']);

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) {
   //
});

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) {
   //
});

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;
});

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]+');

Sortie

La sortie est −

disha

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.

URL invalide -

http://localhost:8000/student/dishaSingh123

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]+']);
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

L'URL valide ci-dessus est −

http://localhost:8000/student/12/disha
http://localhost:8000/student/01/disha

URL invalide -

http://localhost:8000/student/01/DISHA
http://localhost:8000/student/abcd/disha

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]+');

Sortie

La sortie du code ci-dessus est −

12===disha

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');

Sortie

La sortie du code ci-dessus est −

12===dishaSingh

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');

Sortie

Le résultat sera -

12===dishaSingh122

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:fonction levenshtein() en PHPArticle suivant:fonction levenshtein() en PHP