ホームページ >PHPフレームワーク >Laravel >Laravel Admin の論理的な削除機能について話しましょう

Laravel Admin の論理的な削除機能について話しましょう

PHPz
PHPzオリジナル
2023-04-09 08:30:021020ブラウズ

Laravel Admin は、多くの便利なコンポーネントとプラグインを使用できる非常に人気のあるオープンソースのバックエンド管理フレームワークです。中でも論理的な削除機能は、エレガントなデータの削除と復元を実現できる、多くの開発者にとって不可欠な機能の 1 つです。この記事では、読者がこの側面の知識をよりよく習得できるように、Laravel Admin のソフト削除機能を紹介します。

まず、ソフト削除とは何ですか?従来のデータ削除では、通常、物理的な削除によってデータベースからデータを完全に削除しますが、これにより不要な問題が発生する可能性があります。データを誤って削除してしまった、データを復元できなくなったなど。論理的な削除とは、データがデータベース内で物理的に削除されなくなることを意味しますが、列 deleted_at がデータ テーブルに追加されます。データを削除する必要がある場合、列の値は現在の時刻。これは、「このデータは削除済みとしてマークされています」に相当します。このようにして、データが削除された場合でも、空ではないデータについて deleted_at をクエリすることで、削除されたデータを取得できます。

Laravel Admin の論理的な削除機能は実装が非常に簡単で、deleted_at データ テーブル フィールドを作成するだけです。モデルでは、次のように、論理的な削除特性、つまり 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;];

    // ...
}

There is a $dates ここの属性。これは、時間のフォーマットと操作を容易にするために、このフィールドをカーボンでインスタンス化されたオブジェクトに追加する必要があることを意味します。

Laravel Admin のデータテーブルコンポーネントを使用すると、論理的に削除されたデータが自動的に除外されます。論理的に削除されたデータを表示する必要がある場合は、データ テーブルの上にあるフィルター条件で [削除されたデータを表示] をチェックするだけです。

データのソフト削除も、Laravel Admin では非常に簡単です。コントローラーで delete() メソッドを呼び出すだけです。このメソッドは、deleted_at フィールドを現在時刻に設定し、データを削除済みとしてマークします。復元関数を使用する必要がある場合は、restore() メソッドを呼び出して、削除されたデータの deleted_at フィールドを null に設定します。

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' => '还原成功']);
}

つまり、Laravel Admin のソフト削除機能は、私たちに大きな利便性と柔軟性をもたらします。これは、運用上の問題やセキュリティ上の問題を回避し、開発をより効率的かつ信頼性の高いものにするのに役立ちます。読者の皆様には、この記事で紹介した内容をマスターして、実際の開発におけるソフト削除機能に応用していただければ幸いです。

以上がLaravel Admin の論理的な削除機能について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。