Heim > PHP-Framework > Laravel > Das Soft-Delete-Feld von Laravel wurde in „Andere' geändert

Das Soft-Delete-Feld von Laravel wurde in „Andere' geändert

WBOY
Freigeben: 2023-05-20 19:58:36
Original
716 Leute haben es durchsucht

Laravel ist ein beliebtes PHP-Framework, das viele leistungsstarke Funktionen und benutzerfreundliche Tools bietet, um Entwicklern bei der Entwicklung effizienter, skalierbarer und leicht zu wartender Webanwendungen zu helfen. Die Soft-Delete-Funktion von Laravel ist eine sehr nützliche Funktion, die es Entwicklern ermöglicht, Daten in der Datenbank einfach zu löschen, ohne die Integrität der Datenbank zu zerstören. Manchmal müssen Entwickler jedoch möglicherweise das Soft-Delete-Feld von Laravel in einen anderen Namen ändern, um ihren spezifischen Anforderungen gerecht zu werden. In diesem Artikel erfahren Sie, wie Sie das Soft-Delete-Feld in Laravel in einen anderen Namen ändern.

Laravel Soft Deletion

In Laravel wird Soft Deletion dadurch erreicht, dass die Daten als „Löschen“ markiert werden, anstatt die Daten tatsächlich aus der Datenbank zu löschen. Die Funktion zum vorläufigen Löschen zerstört nicht die Integrität der Datenbank, da die vorläufig gelöschten Daten noch in der Datenbank vorhanden sind, jedoch als „gelöscht“ markiert wurden und nicht in den Abfrageergebnissen angezeigt werden. Das weiche Löschen von Laravel besteht hauptsächlich aus zwei Schritten:

  1. SoftDeletes-Funktion zum Modell hinzufügen

Um die Soft-Delete-Funktion von Laravel zu verwenden, müssen Sie hinzufügen SoftDeletes-Funktion zum vorläufigen Löschen von Modellen. Die Modelle von Laravel verwenden Merkmale, um zusätzliche Funktionalität hinzuzufügen. Das Merkmal SoftDeletes ist ein Merkmal, das von Laravel bereitgestellt wird.

use IlluminateDatabaseEloquentModels;
use IlluminateDatabaseEloquentSoftDeletes;

class Example extends Model{
    use SoftDeletes;

    protected $dates = ['deleted_at'];

    //...
}
Nach dem Login kopieren

Im obigen Code gibt die use SoftDeletes-Anweisung an, dass wir die von Laravel bereitgestellte SoftDeletes-Funktion verwenden möchten. Gleichzeitig müssen Sie auch das Attribut $dates verwenden, um den Namen des Soft-Deletion-Zeitstempelfelds zu definieren, das zur Identifizierung des Löschzeitpunkts verwendet wird. Das Standardfeld für den Soft-Delete-Zeitstempel ist „deleted_at“, Sie können jedoch auch andere Namen verwenden.

  1. Weisen Sie das Modell an, einen weichen Löschvorgang durchzuführen.

Die SoftDeletes-Funktion von Laravel bietet stattdessen eine Löschmethode, die einen Löschvorgang durchführt, ohne Daten tatsächlich zu löschen Die Daten werden als „gelöscht“ gekennzeichnet. Zum Beispiel:

$example = Example::find(1);
$example->delete();
Nach dem Login kopieren
Nach dem Login kopieren

Der obige Code markiert die Daten mit der ID 1 als „gelöscht“, löscht sie jedoch nicht aus der Datenbank.

Um vorläufig gelöschte Daten abzufragen, können Sie die Methode „withTrashed“ verwenden, um alle Daten einschließlich der vorläufig gelöschten Daten abzurufen, oder die Methode „onlyTrashed“, um nur gelöschte Daten abzurufen. Zum Beispiel:

// 查询包括软删除数据在内的所有数据
$examples = Example::withTrashed()->get();

// 查询删除的数据
$deletedExamples = Example::onlyTrashed()->get();
Nach dem Login kopieren

Die oben genannten Codes können verwendet werden, um vorläufig gelöschte Daten bzw. gelöschte Daten abzufragen.

Ändern Sie das vorläufig gelöschte Laravel-Feld in einen anderen Namen.

Standardmäßig verwendet Laravel das Feld „deleted_at“, um das Löschzeitstempelfeld zu identifizieren, was die Abfrage vorläufig gelöschter Daten erleichtert Daten Sehr praktisch.

In einigen Fällen müssen Entwickler jedoch möglicherweise andere Attribute verwenden, um die Entfernung des Zeitstempelfelds anzuzeigen. Wenn Sie den Namen eines vorläufig gelöschten Felds in Laravel ändern müssen, können Sie die Methode „deledAt“ in Ihrem Modell definieren. Zum Beispiel:

use IlluminateDatabaseEloquentModel;
use IlluminateDatabaseEloquentSoftDeletes;

class Example extends Model{
    use SoftDeletes;

    protected $dates = ['my_deleted_at'];

    public function getDeletedAtColumn()
    {
        return 'my_deleted_at';
    }

    // ...
}
Nach dem Login kopieren

Im obigen Code ändern wir „deleted_at“ im $dates-Attribut in „my_deleted_at“ und verwenden die getDeletedAtColumn-Methode, um das vorläufig gelöschte Laravel-Feld in „my_deleted_at“ zu ändern.

Vorläufiges Löschen kann dann durchgeführt werden mit:

$example = Example::find(1);
$example->delete();
Nach dem Login kopieren
Nach dem Login kopieren

Laravel verwendet das Feld „my_deleted_at“ anstelle des Standardfelds „deled_at“, um die Daten als gelöscht zu markieren. Zur Abfragezeit können Sie die Methoden withTrashed und onlyTrashed verwenden, um gelöschte Daten abzurufen.

Zusammenfassung

In Laravel ist es durch die Verwendung von Soft-Delete einfach, Daten als „gelöscht“ zu markieren, ohne sie tatsächlich zu löschen. Die SoftDeletes-Funktion von Laravel bietet eine einfache Möglichkeit, vorläufige Löschungen durchzuführen. Standardmäßig verwendet Laravel das Feld „deleted_at“, um Löschzeitstempelfelder zu identifizieren. Entwickler können das Feld jedoch mithilfe der Methode getDeletedAtColumn in einen anderen Namen ändern. Unabhängig von der Lösung ist das sanfte Löschen eine sehr leistungsstarke und praktische Funktion in Laravel.

Das obige ist der detaillierte Inhalt vonDas Soft-Delete-Feld von Laravel wurde in „Andere' geändert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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