Laravel Validation: Eine Schritt für Schritt Anleitung

Im Durchschnitt wird dieses Tutorial Laravel Validation: Eine Schritt für Schritt Anleitung mit 5 bewertet, wobei 1.0 die schlechteste und 5.0 die beste Bewertung ist. Es haben insgesamt 48 Besucher eine Bewertung abgegeben.
48 0

Laravel Validation: Eine Schritt für Schritt Anleitung

Laravel PHP

Du bist ein großartiger Laravel Entwickler und entwickelten eine leistungsfähige Anwendung. Du steckst all deine Bemühungen ins kodieren, aber stelle dir nun folgendes Szenario vor:

Es kommt vor, dass sich die Benutzer nicht so verhalten, wie du es erwartest und und füllen einige Felder falsch aus. Zum Beispiel möchte ein Benutzer extra nett sein, ein Währungssymbol im Betragsfeld ($ 100) eingegeben und speichern. Der Spaß beginnt dann, wenn Ihr Datenspeicher-Skript versucht, diese Daten in einem numerischen Datenbank-Feld zu speichern … Laufzeitfehler.

Nun, wenn deine Anwendung nicht mit einem Szenario wie die oben stehenden oder ähnlichen klar kommt, führt das zu einem durcheinander und zu Laufzeitfehlern, welche man sich wünscht nicht zu haben. Eine robuste App beginnt mit der Architektur der Speicherung der richtigen Art von Daten von Benutzern und ermöglicht, Daten mit bestimmten Regeln eingeben.

Heute zeige ich dir, was du wissen musst, wenn du mit der Validierung in Laravel begonnen hast, um ein beliebiges Szenario, wie oben erwähnt zu vermeiden und eine narrensichere Anwendung zu haben.

Ich möchte dir zeigen wie das Validierungssystem in Laravel an Hand eines einfachen Beispiels funktioniert. Mein Ziel ist es das Tutorial so einfach wie möglich zu halten, so dass es für dich verständlich ist.

Um nicht zu Complex zu werden, nutzen legen wir nur den notwendigen code zugrunde. Auch wenn du nicht alles über Laravel wissen musst um erfolgreich durch das Tutorial zu kommen, empfehle ich, dass du ein gewisses Know-How hast.
:

  • Da das Validierungssystem in Laravel sich auf ein normales konventionelles unterscheidet, sollten Sie die Architektur von MVC kennen. Dies wird dir helfen, den Ablauf der Codeausführung zu verstehen und welcher Platz ist ideal, um die Validierung zu platzieren, die ich später in diesem Artikel besprechen werde.
  • Und wenn du noch auf der Suche nach einer guten Quelle für Lernen von Laravel bist, dann empfehlen wir diesen Artikel. da bekommst du alles, um mit Laravel zu beginnen.

Nur um es zu zeigen – denk daran, dass du einige Benutzerdaten in der DB mit Laravel als Rahmen speichern wirst. Betrachte die Beispielfelder wie Benutzername, Telefon und E-Mail. Du hast die Validierung für diese Felder aber sie werden dich nicht einschränken. I zeige die alle anderen Typen von Validierungen die man haben kann, wo du sie platzieren musst, wie du Validierungsfehler handhaben musst und mehr.

Dein Weg, Modell, Controller und View sollten wie folgt aussehen:

Model [ Basically model logic talk to data]
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class UserDetails extends Model
{
protected $fillable = [
'name', 'phone','email','bio'
];
...
...
}

Die oben genanten Codes sollten dich nicht stören, und du solltest verstehen, dass diese im Grunde die Datensätze der DB-Tabelle für Benutzer Details sind. Erfahre mehr über Laravel Modelle hier.

Route [Handles all requests and and propagate response]
Route::resource(user_details, 'UserDetailsController');

Die obige Line erstellt einnen Zaubercode für alle HTTP-Methoden – sei es Save, Update, Delete, etc. Route-Dateien sind nichts anderes als die Handhabung aller Benutzeranforderungen und verantwortlich für das Senden über alle Antworten aus der Anwendung. Wissen wie du das Know-Hows eines Controllers anwendest findest du hier.

View [Basically blade template files that handles the user facing view, V of MVC]
@extends('layout.master')  // inherits master template 
@section('content')
<form method="POST" action="{{ url(‘user_details/store’) }}">
  User name:<br>
  <input type="text" name="username" value="">
  <br>
  Phone:<br>
  <input type="text" name="phone" value="">
<br>
Email:<br>
  <input type="text" name="email" value="">
  <br><br>
  <input type="submit" value="Submit">
</form> 
 @endsection

Eine einfache Form, um Daten in der Vorlage von Laravel zu senden. Der Code, den du in Aktion siehst, erzeugt die URL oder sagt die Route, die für Postmethoden benötigt wird, um Daten zu speichern.
Ich wiederhole mich, aber ich möchte die Dinge nicht verkomplizieren und an unserem Plan festhalten – einen richtigen Weg für die Laravel-Validierung vorgeben.

Controller   [snippet to save data] 
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\UserDetails;
….
….
public function store(Request $request)
    {
//validate the request
        UserDetails::create($request->all());
//
    }
….
….

Du kannst im obigen Code sehen, dass alle Anforderungsdaten die kommen mit UserDetails modal gespeichert werden. Hier kannst du Sie mehr über Laravel Eloquent ORM finden. Wenn du in dem Obigen den Controller-Snippet anguckst ist dort kommentiert den Task ‚validate requests‘ auszuführen. Du hast es richtig erkannt, das ist der Ort, an dem du etwas Magie machen wirst, um Anfragen zu validieren. Magic bei Laravel macht ein Leben einfacher mit Codierung und ermöglicht es dir, deine Energie zu verbringen, wo sie gebraucht wird – bei der Logik und der Architektur.

Lass es mich auf eine einfache Weise erklären. Dein Controller erbt immer Merkmale Methoden und macht für dich die Validierung in Laravel.  Die Methode ‚Validate‘ ist alles was du wissen und implementieren musst, es hilft dir für die Regeln und die Handhabung. Ebenfalls wird es sicherstellen, dass wenn die Validierung fehlschlägt, die Validierungsfehlermeldungen umgeleitet werden.

Lass mich dir zeigen, wie unsere bisherige Controller-Methode, um Daten zu speichern, nach der Implementierung von Validierungen aussehen würde:

public function store(Request $request)
    {
$this->validate($request, [
        'username' => 'required|unique:userdetails|max:100,
        'phone' => 'required|numeric|max:10',
        'email' => 'required|email',
    ]);
 UserDetails::create($request->all());
//
    }

Erwartete Komplexität? Niemals, denn mit Laravel wird dein Leben einfach,  zumindest mit der Kodierung.

Lass mich das Code-Snippet für die Validierungen erklären.
Es gilt die Validierungsmethode und die Anforderungsdaten zu übergeben. Nun kannst du innerhalb der Optionen dieser Methode Regeln für die Validierung für die gewünschten Formularfelder festlegen. Hier sind in diesem Fall alle drei Felder erforderlich. Du kannst andere Optionen mit dem Pfeilzeichen versehen. Sieh das Benutzernamen-Feld hat eine besondere Validierung und es nimmt Benutzerdetails wie den Name der DB-Tabelle auf. Das heißt, es wird für den primären oder eindeutigen Index auf dem Benutzernamen Feld, wenn du sagst, ‚unique: userdetails‘ überprüfen. Außerdem prüft es auf ein gültiges E-Mail-Format im E-Mail-Feld. Dies ist ein einfaches Beispiel mit Beispielfeldern, aber Laravel bietet eine breite Palette von Validierungsregeln wie max und min Länge, verschiedene Datenformat-Validierungen, erlaubte Bildtypen im Falle einer Anlage und vieles mehr. Schaue hier für den vollständigen Satz von Validierungsregeln vorbei.

Wenn eine der Regeln, die in der Validierung festgelegt sind, verletzt wird, gibt Laravel eine Ausnahme aus und läßt  zu deiner eingegebenen URL mit der Fehlermeldungen die du dir anzeigen lassen kannst, weiterleiten. Zum Beispiel kannst du alle Fehlermeldungen in der folgenden Weise durchschleifen:

In deinem Blade Template:

@if($errors)  //laravel blade shorthand for php If tag 
foreach ($errors->all() as $message) {
   // your list of error message goes here
}
@endif

Über dem Code sollten alle Validierungsfehler angezeigt werden, wenn sie auftreten. Oder du willst eine Show-Validierungsfehlermeldung direkt neben einem bestimmten Feld – dann sollte es so gehen:

<div class="error">{{ $errors->first(‘username’) }}</div>

Ich habe gezeigt, wie und wo Validierungsregeln gesetzt werden. Um sie in den Controller zu setzen, ist die beste Praxis für alle Arten von Laravel Anwendungen. Wenn die Anwendungen komplex werden und du eine Vorliebe für einen sauberen und separaten Code hast, kannst du ‘Form request validation’ verwenden. In einfachen Worten – Du kannst Anforderungsdateien erstellen, welche die Regeln zur Bestätigung jeder Anfrage halten, bevor sie den Controllers erreichen.

Zuerst musst du Anforderungsdateien mit einem Handwerksbefehl generieren:

php artisan make:request UserDetailsRequest
Mit dem obigen Befehl hast du die Anforerungsdateien in dem app/Http/Requests Verzeichnis.
Dort kannst du deine Validierungsregeln haben (Beispiel unten):
public function rules()
{
    return [
        'username' => 'required|unique:userdetails|max:100,
        'phone' => 'required|numeric|max:10',
        'email' => 'required|email',
    ];
}

Dein Code für die Anzeige von Validierungsfehlern bleibt derselbe wie ich bereits für die im Controller gehaltene Validierung erwähnt habe.

Du bist ein großartiger Laravel Entwickler und entwickelten eine leistungsfähige Anwendung. Du steckst all deine Bemühungen ins kodieren, aber stelle dir nun folgendes Szenario vor: Es kommt vor, dass sich die Benutzer nicht so verhalten, wie du es erwartest und und füllen einige Felder falsch aus. Zum Beispiel möchte ein Benutzer extra nett sein, ein Währungssymbol […]

Schade, dass dir der Artikel nicht gefallen hat.
Was sollten wir deiner Meinung nach besser machen?

Vielen Dank für dein Feedback!
Wir melden uns bei dir, sobald der Artikel zu deinem Wunschthema fertig ist.

Übrigens: kennst du schon unser Tutorial zum Thema Joomla! 3.8 unter Ubuntu 16.04 installieren und einrichten?

×

Entwickler?

Dann einfach hier für unsere Tutorial-Updates anmelden.
Keine Sorge: Wir spammen dich nicht zu