Heim > Artikel > Backend-Entwicklung > Wie validiere ich Routenparameter in Laravel?
In Laravel werden Routen im Ordner paths/ definiert. Routen werden in der Datei web.php definiert. Diese Datei wird erstellt, nachdem die Laravel-Installation abgeschlossen ist. Das Laravel-Routing akzeptiert URI- und Abschlussfunktionen wie unten gezeigt -
use Illuminate\Support\Facades\Route; Route::get('/student', function () { return 'Hello Student'; });
In web/routes.php definierte Routen werden der Web-Middleware-Gruppe zugewiesen und sie Verfügt über Sitzungsstatus und CSRF-Schutz. Sie können den Controller auch in der Route anrufen Wie unten gezeigt -
use Illuminate\Support\Facades\Route; use App\Http\Controllers\StudentController; Route::get('student', [StudentController::class, 'index']);
Hier sind die Routing-Methoden, die Sie in Ihrer Anwendung verwenden können:
Route::get($ uri, $Callback-Funktion oder Controller);
Route::post($uri, $Callback-Funktion oder Controller);
Route::put($uri, $Callback-Funktion oder Controller);
Route::patch($uri, $Callback-Funktion oder Controller);
Route::delete($uri, $Callback-Funktion oder Controller);
Route::options($uri, $Callback-Funktion oder Controller);
Routenparameter stehen in geschweiften Klammern und der angegebene Name enthält alphanumerische Zeichen. Zusätzlich zu alphanumerischen Zeichen können Sie bei der Auswahl von Routing-Parameternamen auch Unterstriche verwenden.
Die Syntax der Routing-Parameter lautet wie folgt: −
Route::get('/user/{myid}', function ($myid) { // });
Hier ist myid der Routing-Parameter, den wir weiter verwenden möchten.
Sie können mehrere Routenparameter haben, wie in der folgenden Syntax gezeigt.
Route::get('/students/{post}/feedbacks/{feedback}', function ($postId, $feedbackId) { // });
Im obigen Fall gibt es zwei Routing-Parameter: {post} und {feedback}
Sie können Routen auch optionale Parameter hinzufügen. Optionale Parameter sind nicht immer verfügbar und werden durch ? nach dem Parameter gekennzeichnet. Die Syntax optionaler Parameter lautet wie folgt: −
Route::get('/students/{myname?}', function ($myname = null) { return $myname; });
Hier ist myname ein optionaler Parameter.
Laravel verfügt über einige Methoden zur Validierung von Parametern. Dies sind where(), whereNumber(), whereAlpha() und whereAlphaNumeric().
Die chinesische Übersetzung vonVerwenden Sie die Methode where()
Die Methodewhere() ist auf der Route definiert und akzeptiert den Parameternamen und die auf den Parameter angewendete Validierung. Wenn mehrere Parameter vorhanden sind, wird es als Array akzeptiert, wobei die Schlüssel die Parameternamen und die Werte die auf die Schlüssel anzuwendenden Validierungsregeln sind.
Route::get('/student/{studentname}', function ($studentname) { return $studentname; })->where('studentname', '[A-Za-z]+');
Die Ausgabe ist −
disha
Im oben genannten Fall muss der Name des Studierenden A-Z oder a-z oder eine Mischung aus beiden enthalten. Das Folgende sind also gültige URLs -
http://localhost:8000/student/DISHA http://localhost:8000/student/dishaSingh.
Ungültige URL -
http://localhost:8000/student/dishaSingh123
Lassen Sie uns nun mehrere Parameter mit der Methode where() überprüfen.
Route::get('/student/{studentid}/{studentname}', function ($studentid, $studentname){ return $studentid."===".$studentname; })->where(['studentid' => '[0-9]+', 'studentname' => '[a-z]+']);Im obigen Fall sind die Routing-Parameter studentid und studentname. Studentenausweis ist erforderlich ist eine Zahl zwischen 0 und 9 und der Name des Schülers muss in Kleinbuchstaben angegeben werden. Der Inhalt, der übersetzt werden muss, ist: Es muss eine Zahl zwischen 0 und 9 sein und der Schülername muss in Kleinbuchstaben geschrieben sein
Die obige Ausgabe ist −
12===disha
Die oben genannte gültige URL ist −
http://localhost:8000/student/12/disha http://localhost:8000/student/01/disha
Ungültige URL -
http://localhost:8000/student/01/DISHA http://localhost:8000/student/abcd/disha
Sie müssen nur die Routenparameter übergeben, die gültige Werte sein sollen -
Route::get('/student/{studentid}/{studentname}', function ($studentid, $studentname) { return $studentid."===".$studentname; })->whereNumber('studentid')->where('studentname','[a-z]+');
Die Ausgabe des obigen Codes ist −
12===disha
Sie müssen den Routenparameter übergeben, der einen Alphawert haben soll -
Route::get('/student/{studentid}/{studentname}', function ($studentid, $studentname) { return $studentid."===".$studentname; })->whereNumber('studentid')->whereAlpha('studentname');
Die Ausgabe des obigen Codes ist −
12===dishaSingh
Sie müssen den Routenparameter übergeben, der einen alphanumerischen Wert haben soll −
Route::get('/student/{studentid}/{studentname}', function ($studentid, $studentname) { return $studentid."===".$studentname; })->whereNumber('studentid')->whereAlphaNumeric ('studentname');
Die Ausgabe wird -
sein12===dishaSingh122
Das obige ist der detaillierte Inhalt vonWie validiere ich Routenparameter in Laravel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!