Wie validiere ich Routenparameter in Laravel?

PHPz
Freigeben: 2023-09-01 14:42:02
nach vorne
819 Leute haben es durchsucht

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';
});
Nach dem Login kopieren

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']);
Nach dem Login kopieren

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

Überprüfung der Routenparameter

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.

Grammatik

Die Syntax der Routing-Parameter lautet wie folgt: −

Route::get('/user/{myid}', function ($myid) {
   //
});
Nach dem Login kopieren

Hier ist myid der Routing-Parameter, den wir weiter verwenden möchten.

Mehrere Routing-Parameter

Sie können mehrere Routenparameter haben, wie in der folgenden Syntax gezeigt.

Route::get('/students/{post}/feedbacks/{feedback}', function ($postId, $feedbackId) {
   //
});
Nach dem Login kopieren

Im obigen Fall gibt es zwei Routing-Parameter: {post} und {feedback}

Optionale Parameter

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;
});
Nach dem Login kopieren

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 von

Beispiel 1

lautet:

Beispiel 1

Verwenden Sie die Methode where()

Die Methode

where() 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]+');
Nach dem Login kopieren

Ausgabe

Die Ausgabe ist −

disha
Nach dem Login kopieren

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.
Nach dem Login kopieren

Ungültige URL -

http://localhost:8000/student/dishaSingh123
Nach dem Login kopieren

Beispiel 2

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]+']);
Nach dem Login kopieren
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

Ausgabe

Die obige Ausgabe ist −

12===disha
Nach dem Login kopieren
Nach dem Login kopieren

Die oben genannte gültige URL ist −

http://localhost:8000/student/12/disha
http://localhost:8000/student/01/disha
Nach dem Login kopieren

Ungültige URL -

http://localhost:8000/student/01/DISHA
http://localhost:8000/student/abcd/disha
Nach dem Login kopieren

Verwenden Sie whereNumber()

Beispiel

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]+');
Nach dem Login kopieren

Ausgabe

Die Ausgabe des obigen Codes ist −

12===disha
Nach dem Login kopieren
Nach dem Login kopieren

Verwenden Sie whereAlpha()

Beispiel

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');
Nach dem Login kopieren

Ausgabe

Die Ausgabe des obigen Codes ist −

12===dishaSingh
Nach dem Login kopieren

Verwenden Sie whereAlphaNumeric()

Beispiel

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');
Nach dem Login kopieren

Ausgabe

Die Ausgabe wird -

sein
12===dishaSingh122
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage