Maison >cadre php >Laravel >Parlons de la fonction de suppression logicielle dans Laravel Admin

Parlons de la fonction de suppression logicielle dans Laravel Admin

PHPz
PHPzoriginal
2023-04-09 08:30:021020parcourir

Laravel Admin est un framework de gestion backend open source très populaire avec de nombreux composants et plug-ins pratiques à utiliser. Parmi elles, la fonction de suppression logicielle est l'une des fonctions indispensables pour de nombreux développeurs, qui peuvent réaliser une suppression et une récupération élégantes de données. Cet article présentera la fonction de suppression logicielle dans Laravel Admin, dans l'espoir d'aider les lecteurs à mieux maîtriser cet aspect des connaissances.

Tout d’abord, qu’est-ce que la suppression logicielle ? Lors de la suppression de données traditionnelle, nous supprimons généralement complètement les données de la base de données par suppression physique, ce qui peut entraîner des problèmes inutiles. Comme la suppression accidentelle de données, l'impossibilité de récupérer des données, etc. La suppression logicielle signifie que les données ne sont plus physiquement supprimées dans la base de données, mais qu'une colonne deleted_at est ajoutée à la table de données. Lorsque les données doivent être supprimées, la valeur de cette colonne sera définie sur. l'heure actuelle. Cela équivaut à marquer les données comme supprimées. De cette façon, même si les données sont supprimées, nous pouvons toujours récupérer les données supprimées en interrogeant deleted_at pour les données qui ne sont pas vides. 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

La fonction de suppression logicielle dans Laravel Admin est très simple à mettre en œuvre. Il vous suffit de créer un champ de table de données deleted_at. Dans le modèle, nous devons utiliser le trait de suppression logicielle, c'est-à-dire use SoftDeletes;, pour activer la suppression logicielle, comme indiqué ci-dessous :

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' => '还原成功']);
}
Il y a un $dates attribut ici, qui représente Nous devons ajouter ce champ à l'objet instancié carbon afin que nous puissions formater et exploiter le temps. 🎜🎜Lorsque nous utilisons le composant de table de données de Laravel Admin, il filtrera automatiquement les données supprimées de manière logicielle. Si nous devons afficher les données supprimées de manière logicielle, il nous suffit de cocher « Afficher les données supprimées » dans les conditions de filtre au-dessus du tableau de données. 🎜🎜La suppression logicielle des données est également très simple dans Laravel Admin. Appelez simplement la méthode delete() dans le contrôleur. Cette méthode définira le champ deleted_at sur l'heure actuelle, marquant les données comme supprimées. Si nous devons utiliser la fonction de restauration, nous pouvons appeler la méthode restore() et définir le champ deleted_at des données supprimées sur null. 🎜rrreee🎜En bref, la fonction de suppression logicielle de Laravel Admin nous apporte une grande commodité et flexibilité. Cela peut nous aider à éviter certaines difficultés opérationnelles et problèmes de sécurité, rendant notre développement plus efficace et plus fiable. J'espère que les lecteurs pourront maîtriser le contenu présenté dans cet article et l'appliquer à la fonction de suppression logicielle dans le développement réel. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn