Heim  >  Artikel  >  PHP-Framework  >  Laravel-Anwendungen befassen sich mit Benutzern, angefangen beim Abrufen ihrer Daten!

Laravel-Anwendungen befassen sich mit Benutzern, angefangen beim Abrufen ihrer Daten!

藏色散人
藏色散人nach vorne
2020-10-28 14:56:411989Durchsuche

Tutorialspalte eingeführt, um Benutzern Laravel-Anwendungen vorzustellen und mit ihren Daten zu beginnen! , ich hoffe, es wird Freunden in Not helfen! Einführung

Ursprünglich sollten wir, nachdem wir über Routing und Controller gesprochen haben, als nächstes über Ansichten sprechen, aber da die Funktion von Ansichten zu langweilig ist und es sich um eine Front-End-Seite handelt, ist es unvermeidlich, einige js zu schreiben und CSS. Laravel konzentriert sich auf das Backend. Um Backend-Entwicklern etwas Pufferzeit zu geben, überspringen wir die Ansicht und sprechen zunächst über die Erfassung und Verarbeitung von Benutzerdaten. Dies ist eine unverzichtbare Funktion für fast jede Anwendung.

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,

Es ist einfach so dass die eingehenden Standortparameter im Allgemeinen unschädlich für Mensch und Tier sind und für Sie öffentlich zugänglich sind, damit Sie kommen und gehen können.

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

$request->all()

sprechen. Dieses Formular druckt beispielsweise die folgenden Felder. Schauen Sie sich einfach den HTML-Inhalt an!


    {{ csrf_field() }}         

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

__token

, 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

exclusive()

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:


    {{ csrf_field() }}                         
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.

Am Ende geschrieben

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen