Heim >PHP-Framework >Laravel >Lassen Sie uns über die Soft-Delete-Funktion in Laravel Admin sprechen

Lassen Sie uns über die Soft-Delete-Funktion in Laravel Admin sprechen

PHPz
PHPzOriginal
2023-04-09 08:30:021017Durchsuche

Laravel Admin ist ein sehr beliebtes Open-Source-Backend-Management-Framework mit vielen praktischen Komponenten und Plug-Ins zur Verwendung. Darunter ist die Soft-Delete-Funktion für viele Entwickler eine der unverzichtbaren Funktionen, mit denen eine elegante Datenlöschung und -wiederherstellung erreicht werden kann. In diesem Artikel wird die Soft-Deletion-Funktion in Laravel Admin vorgestellt, in der Hoffnung, den Lesern dabei zu helfen, diesen Wissensaspekt besser zu beherrschen.

Was ist vorläufiges Löschen? Bei der herkömmlichen Datenlöschung löschen wir Daten normalerweise vollständig aus der Datenbank durch physisches Löschen, was zu unnötigen Problemen führen kann. Beispielsweise das versehentliche Löschen von Daten, die Unfähigkeit, Daten wiederherzustellen usw. Vorläufiges Löschen bedeutet, dass die Daten nicht mehr physisch in der Datenbank gelöscht werden, sondern der Datentabelle eine Spalte deleted_at hinzugefügt wird. Wenn die Daten gelöscht werden müssen, wird der Wert dieser Spalte auf gesetzt die aktuelle Uhrzeit. Dies entspricht dem Markieren der Daten als gelöscht. Auf diese Weise können wir die gelöschten Daten auch dann abrufen, wenn die Daten gelöscht werden, indem wir deleted_at nach Daten abfragen, die nicht leer sind. deleted_at,当数据需要被删除时,会将该列的值设置为当前时间,相当于标记该数据已被删除。这样,即使数据被删除了,我们还能通过查询 deleted_at 不为空的数据来找回被删除的数据。

Laravel Admin 中的软删除功能非常容易实现,只需要创建一个 deleted_at 数据表字段即可。在模型中,我们需要使用软删除 trait,即 use SoftDeletes;,来启用软删除,如下所示:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Product extends Model
{
    use SoftDeletes;

    protected $dates = [&#39;deleted_at&#39;];

    // ...
}

这里有一个 $dates 属性,代表要将这个字段添加到 carbon 实例化对象中,便于我们对时间进行格式化和操作。

当我们使用 Laravel Admin 的数据表格组件时,它会自动将软删除的数据过滤掉。如果我们需要查看已被软删除的数据,只需要在数据表格上方的筛选条件中,勾选“显示已删除数据”即可。

在 Laravel Admin 中,软删除数据也非常容易。只需要在控制器中调用 delete() 方法即可。该方法会将 deleted_at 字段设置为当前时间,标记该数据已被删除。如果我们需要使用还原功能,则可以调用 restore() 方法,将被删除数据的 deleted_at

Die Soft-Delete-Funktion in Laravel Admin ist sehr einfach zu implementieren. Sie müssen lediglich ein Datentabellenfeld deleted_at erstellen. Im Modell müssen wir die Funktion „Soft Deletion“ verwenden, d. h. use SoftDeletes;, um das sanfte Löschen zu ermöglichen, wie unten gezeigt:

public function destroy($id)
{
    Product::destroy($id); // 执行软删除

    return redirect(&#39;/admin&#39;)->with(['success' => '删除成功']);
}

public function restore($id)
{
    $product = Product::withTrashed()->find($id);
    $product->restore(); // 还原删除数据

    return redirect('/admin')->with(['success' => '还原成功']);
}
Es gibt einen $dates Attribut hier, das darstellt: Wir müssen dieses Feld zum instanziierten Kohlenstoffobjekt hinzufügen, damit wir die Zeit formatieren und verwalten können. 🎜🎜Wenn wir die Datentabellenkomponente von Laravel Admin verwenden, werden vorläufig gelöschte Daten automatisch herausgefiltert. Wenn wir vorläufig gelöschte Daten anzeigen müssen, müssen wir in den Filterbedingungen über der Datentabelle nur „Gelöschte Daten anzeigen“ aktivieren. 🎜🎜Das sanfte Löschen von Daten ist in Laravel Admin ebenfalls sehr einfach. Rufen Sie einfach die Methode delete() im Controller auf. Diese Methode setzt das Feld deleted_at auf die aktuelle Zeit und markiert die Daten als gelöscht. Wenn wir die Wiederherstellungsfunktion verwenden müssen, können wir die Methode restore() aufrufen und das Feld deleted_at der gelöschten Daten auf Null setzen. 🎜rrreee🎜Kurz gesagt, die Soft-Delete-Funktion in Laravel Admin bietet uns großen Komfort und Flexibilität. Es kann uns helfen, einige Betriebsschwierigkeiten und Sicherheitsprobleme zu vermeiden und unsere Entwicklung effizienter und zuverlässiger zu machen. Ich hoffe, dass die Leser den in diesem Artikel vorgestellten Inhalt beherrschen und ihn auf die Soft-Delete-Funktion in der tatsächlichen Entwicklung anwenden können. 🎜

Das obige ist der detaillierte Inhalt vonLassen Sie uns über die Soft-Delete-Funktion in Laravel Admin sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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