Maison > Article > développement back-end > 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);
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.
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.
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}
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 deUtilisez la méthode Where()
La méthodewhere() 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]+');
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
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.
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
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]+');
La sortie du code ci-dessus est −
12===disha
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');
La sortie du code ci-dessus est −
12===dishaSingh
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');
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!