Laravel ist ein beliebtes PHP-Webframework, das bei Entwicklern wegen seiner leistungsstarken Funktionen und Benutzerfreundlichkeit beliebt ist. In der tatsächlichen Entwicklung müssen wir häufig Daten in der Datenbank löschen. In diesem Artikel erfahren Sie, wie Sie Löschvorgänge in Laravel schreiben, um Ihnen zu helfen, Laravel besser zu verstehen und zu verwenden.
Laravel bietet verschiedene Methoden zum Löschen eines einzelnen Datenelements, die im Folgenden vorgestellt werden.
(1) Verwenden Sie die mit dem Modell gelieferte delete()-Methode.
In Laravel verfügt jedes Modell über eine delete()-Methode, mit der die dem Modell entsprechenden Datenbankdatensätze gelöscht werden können. Das Folgende ist ein Beispielcode für die Verwendung:
$user = User::find(1); $user->delete();
Im obigen Code verwenden wir zunächst die Methode find() des Benutzermodells, um den Datensatz mit der ID 1 zu finden, und rufen dann die Methode delete() auf, um den Datensatz zu löschen.
Es ist zu beachten, dass die Methode delete() nicht prüft, ob andere Modelle vom Datensatz abhängig sind. Sie müssen daher sicherstellen, dass sie nicht mit anderen Daten verknüpft sind, bevor Sie den Datensatz löschen.
(2) Verwenden Sie die destroy()-Methode von ORM
ORM (Object-Relational Mapping) ist eine Technologie, die Objekte Daten in relationalen Datenbanken zuordnet. Laravel verfügt über eine integrierte ORM-Funktion und seine destroy()-Methode kann zum Löschen der dem Modell entsprechenden Datenbankdatensätze verwendet werden.
Das Folgende ist ein Beispielcode zum Löschen eines einzelnen Datensatzes mit der Methode destroy() des ORM:
User::destroy(1);
Im obigen Code rufen wir direkt die Methode destroy() des Benutzermodells auf und übergeben die ID des Datensatzes an gelöscht werden.
Es ist zu beachten, dass die Methode destroy() auch nicht prüft, ob andere Modelle vom Datensatz abhängig sind. Sie müssen daher sicherstellen, dass sie nicht mit anderen Daten verknüpft sind, bevor Sie den Datensatz löschen.
(3) Verwenden Sie die delete()-Methode von Query Builder
Query Builder ist ein SQL-Anweisungs-Builder in Laravel, der auf Kettenaufrufen basiert. Es bietet eine Fülle von Methoden zum Betreiben der Datenbank, einschließlich der Methode delete() zum Löschen von Daten.
Das Folgende ist ein Beispielcode zum Löschen eines einzelnen Datensatzes mit der Methode delete() des Query Builders:
DB::table('users')->where('id', 1)->delete();
Im obigen Code verwenden wir die DB-Fassade (Datenbank), um die Methode table() aufzurufen und den Namen des Datensatzes anzugeben Die zu löschende Datentabelle verwendet dann die Methode where(), um die zu löschenden Bedingungen anzugeben, und ruft schließlich die Methode delete() auf, um den Löschvorgang durchzuführen.
Es ist zu beachten, dass die Methode delete() die Ereignisse und Hooks des Modells nicht auslöst. Wenn Sie diese Funktionen verwenden, wird daher empfohlen, eine der oben genannten Methoden zu verwenden.
Zusätzlich zum Löschen einzelner Datenbankeinträge bietet Laravel auch eine praktische Methode zum stapelweisen Löschen von Daten. Im Folgenden finden Sie eine Einführung in zwei häufig verwendete Stapellöschmethoden.
(1) Verwenden Sie die Methode delete() von ORM.
Die Methode delete() von ORM kann nicht nur einen einzelnen Datensatz, sondern auch mehrere Datensätze stapelweise löschen. Das Folgende ist ein Beispielcode, der diese Methode zum stapelweisen Löschen von Datensätzen verwendet:
User::where('age', '>', 18)->delete();
Im obigen Code verwenden wir zunächst die Methode where(), um Benutzer herauszufiltern, die älter als 18 Jahre sind, und rufen dann die Methode delete() auf um diese Datensätze zu löschen.
Es ist zu beachten, dass die Methode delete() die Ereignisse und Hooks des Modells nicht auslöst. Wenn Sie diese Funktionen verwenden, wird daher empfohlen, eine der oben genannten Methoden zu verwenden.
(2) Verwenden Sie die delete()-Methode von Query Builder
Die delete()-Methode von Query Builder kann auch zum stapelweisen Löschen von Datensätzen verwendet werden. Das Folgende ist ein Beispielcode, der diese Methode zum stapelweisen Löschen von Datensätzen verwendet:
DB::table('users')->where('age', '>', 18)->delete();
Im obigen Code verwenden wir die Methode where(), um die zu löschenden Bedingungen anzugeben, und verwenden die Methode delete(), um den Löschvorgang durchzuführen Betrieb.
Es ist zu beachten, dass die Methode delete() die Ereignisse und Hooks des Modells nicht auslöst. Wenn Sie diese Funktionen verwenden, wird daher empfohlen, eine der oben genannten Methoden zu verwenden.
In der tatsächlichen Entwicklung müssen wir manchmal Aufzeichnungen über gelöschte Daten für eine spätere Wiederherstellung aufbewahren. An dieser Stelle ist Soft Delete praktisch. Laravel verfügt über eine integrierte Soft-Delete-Funktion, die uns dabei helfen kann, Daten auf sichere Weise zu löschen.
Die Kernidee der Soft-Deletion-Implementierung besteht darin, der Datenbanktabelle ein delete_at-Feld hinzuzufügen, um die Löschzeit aufzuzeichnen. Beim Abfragen von Daten filtert Laravel automatisch vorläufig gelöschte Datensätze, sodass sie nicht in den Abfrageergebnissen angezeigt werden.
Das Folgende ist ein Beispielcode zum Implementieren des weichen Löschens mit Laravel:
Zuerst müssen Sie das SoftDeletes-Merkmal im Modell verwenden:
<?php namespace App; use IlluminateDatabaseEloquentModel; use IlluminateDatabaseEloquentSoftDeletes; class User extends Model { use SoftDeletes; }
Fügen Sie dann das Feld „deleded_at“ in der Datenbankmigration hinzu:
Schema::table('users', function (Blueprint $table) { $table->softDeletes(); });
Schließlich verwenden Sie Methode „delete“ (im Controller) zum vorläufigen Löschen von Daten:
$user = User::find(1); $user->delete();
Wenn Sie gelöschte Daten wiederherstellen müssen, können Sie die Methode „restore()“ verwenden:
$user = User::withTrashed()->find(1); $user->restore();
Vorsichtiges Löschen kann uns dabei helfen, gelöschte Daten besser zu verwalten, ohne uns Gedanken über versehentliches Löschen von Daten machen zu müssen . Es ist jedoch zu beachten, dass die vorläufige Löschung keine universelle Lösung darstellt. In einigen Geschäftsszenarien müssen Daten vollständig gelöscht werden, um die Datenintegrität und -sicherheit zu gewährleisten.
Zusammenfassung
Laravel bietet eine Fülle von Methoden zum Löschen von Daten, und Sie können je nach spezifischen Geschäftsanforderungen verschiedene Methoden auswählen. In der tatsächlichen Entwicklung müssen wir je nach Situation sorgfältig abwägen, ob Vorgänge wie weiches Löschen oder Stapellöschen verwendet werden sollen, um die Datenintegrität und -sicherheit sicherzustellen. Gleichzeitig ist zu beachten, dass das Löschen von Daten den normalen Betrieb anderer Modelle oder Funktionen beeinträchtigen kann und ausreichende Tests und Überprüfungen erforderlich sind.
Das obige ist der detaillierte Inhalt vonLaravel-Löschen-Schreibmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!