Heim >PHP-Framework >Laravel >Laravel-Anwendungen befassen sich mit Benutzern, angefangen beim Abrufen ihrer Daten!
Tutorialspalte eingeführt, um Benutzern Laravel-Anwendungen vorzustellen und mit ihren Daten zu beginnen! , ich hoffe, es wird Freunden in Not helfen! Einführung
Benutzerdaten sind auch gefährlich
! In diesem Artikel erfahren Sie nicht, wie Sie Gefahren vermeiden können!CodezeitAls wir über Routing-Planung sprachen, sprachen wir darüber, wie man die Positionsparameterbindung der URL zur Orientierung nutzen kann. Tatsächlich ist dies auch eine Möglichkeit, Benutzereingabedaten zu erhalten,
Wenn es sich um private Daten eines einzelnen Nutzers handelt, dürfen diese nicht direkt in der URL übermittelt werden.
laravel speichert Benutzereingaben im
Input-Objekt, und logischerweise sollten Benutzereingaben zum Anforderungselement gehören, sodass
Request auch die Methoden und Daten von Input erbt. Zum Beispiel gibt es die folgende Route: Route::post('form', function (Illuminate\Http\Request $request) {
// $request->method()});
simuliert eine Formularadresse, überträgt Daten über die Post-Methode und verwendet dann die Request-Methode. Werfen wir einen Blick auf die verfügbaren Erfassungsmethoden. Lass uns zuerst über
sprechen. Dieses Formular druckt beispielsweise die folgenden Felder. Schauen Sie sich einfach den HTML-Inhalt an!
Um Daten zu debuggen, wird unsere Route wie folgt registriert:
Route::post('/post-route', function (Request $request) { var_dump($request->all());});
Raten Sie mal, was ausgegeben wird? /**
* [
* '_token' => 'CSRF token here',
* 'firstName' => 'value',
* 'utm' => 12345
* ]
*/
Das ist richtig, Sie sehen das Feld firstName des Post-Formulars, den Abfrageparameter utm von querystring und die integrierte Laravel-Funktion für den CSRF-Schutz. Das Standard-Formularfeld ist
, also ist es in Ordnung. Machen Sie sich keine Sorgen .
Aber Studenten, die von Code besessen sind, finden es möglicherweise unerträglich. Dies ist nicht mein Fachgebiet und ich möchte dieses
__token, diese unbekannte Variable, nicht sehen. Ja, wir können es einfach direkt in den Anforderungsparametern herausfiltern: Route::post('/post-route', function (Request $request) {
var_dump($request->except('_token'));});
Unter anderem wird die Methode
zum Filtern bestimmter Felder verwendet und muss nicht verwendet werden. Die entsprechende Methode ist die Methode only(), die angibt, welche Felder verwendet werden. Verwenden Sie es so:
$request->only(['firstName', 'utm']);
Manchmal ist es logisch, festzustellen, ob einige Schlüssel existieren. Laravel bietet zwei Möglichkeiten, um festzustellen, ob sie existieren: eine ist hat und die andere ist existiert. Einige Klassenkameraden fragen sich vielleicht: Warum brauchen wir noch
exists, wenn wir bereits has haben? Weil ihre Funktionen unterschiedlich sind. Die has-Methode stellt nicht nur fest, dass der Schlüssel existiert, sondern bestimmt ihn auch als falsch, wenn der Wert des Schlüssels leer ist (z. B. null, leere Zeichenfolge, falsch, 0, leeres Array, leeres Objekt usw.). .). Daher ist es notwendig,
exists zu verwenden, um einfach festzustellen, ob ein Schlüssel existiert oder nicht. Sie müssen bei der Verwendung auf diesen subtilen Unterschied achten. Die Verwendung ist sehr einfach, rufen Sie einfach die Methode direkt auf: if ($request->has('utm')) {
// Do some work}
Wenn der Eingabewertschlüssel nicht vorhanden ist, können wir auch einen Standardwert dafür festlegen. Dies ist der zweite Parameter der Eingabemethode. Verwenden Sie Folgendes Aufruf:
Route::post('/post-route', function (Request $request) { $userName = $request->input('name', 'anonymous');});Wenn der Benutzer das Namensfeld nicht übergibt, verwenden Sie stattdessen anonym. Die oben genannten sind alles einfache Schlüssel-Wert-Paare. Es gibt auch ein Formular, bei dem die eingehenden Felder Arrays sein können, wie zum Beispiel das folgende: Das Array kann im Punktmodus in Laravel gelesen werden. Dies liegt daran, dass Laravel analysiert wird , wird die allgemeine Methode der Hilfsklasse Arr verwendet. Um beispielsweise einen bestimmten Schlüssel zu erhalten:
$employeeZeroFirstName = $request->input('employees.0.firstName');Geben Sie den Schlüsselnamen klar an und entsprechen Sie der Ebene. Sie können auch Sternchen verwenden, um alle Schlüssel auf einer bestimmten Ebene abzugleichen:
$allLastNames = $request->input('employees.*.lastName');Oder geben Sie einfach einen bestimmten Schlüssel an und geben Sie ihn dann unverändert zurück, unabhängig von der Anzahl der Ebenen:
$employeeOne = $request->input('employees.1');Für eine bestimmte Verwendung können Leser den Quellcode überprüfen oder Dokumentation und studieren Sie die Verwendung der
Arr
Operationsklasse eingehend.Dieser Artikel behandelt fast einige der am häufigsten verwendeten Methoden für Benutzereingaben. Wir haben nur darüber gesprochen, wie man Benutzerdaten normal erhält, aber nicht darüber gesprochen, wie man die Gültigkeit der Daten überprüft Daten. Da die Front-End-Überprüfung nahezu nutzlos ist, müssen die endgültigen in die Datenbank geschriebenen Daten noch von der Anwendung überprüft werden.
Das ist die Aufgabe des Validators Der Validator wird in den folgenden Kapiteln ausführlich besprochen.
Das obige ist der detaillierte Inhalt vonLaravel-Anwendungen befassen sich mit Benutzern, angefangen beim Abrufen ihrer Daten!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!