>PHP 프레임워크 >Laravel >Laravel Admin의 소프트 삭제 기능에 대해 이야기해 보겠습니다.

Laravel Admin의 소프트 삭제 기능에 대해 이야기해 보겠습니다.

PHPz
PHPz원래의
2023-04-09 08:30:021020검색

Laravel Admin은 사용하기 편리한 다양한 구성 요소와 플러그인을 갖춘 매우 인기 있는 오픈 소스 백엔드 관리 프레임워크입니다. 그중 소프트 삭제 기능은 많은 개발자에게 없어서는 안 될 기능 중 하나로, 우아한 데이터 삭제 및 복구를 달성할 수 있습니다. 이 글은 독자들이 지식의 이러한 측면을 더 잘 익힐 수 있도록 돕기 위해 Laravel Admin의 소프트 삭제 기능을 소개합니다.

일단, 일시 삭제란 무엇인가요? 기존 데이터 삭제에서는 일반적으로 물리적 삭제를 통해 데이터베이스에서 데이터를 완전히 삭제하는데, 이로 인해 불필요한 문제가 발생할 수 있습니다. 실수로 데이터를 삭제하거나 데이터를 복구할 수 없는 경우 등이 있습니다. 소프트 삭제는 데이터가 더 이상 데이터베이스에서 물리적으로 삭제되지 않지만 데이터를 삭제해야 하는 경우 deleted_at 열이 데이터 테이블에 추가되는 것을 의미합니다. 현재 시간은 데이터를 삭제된 것으로 표시하는 것과 같습니다. 이렇게 하면 데이터가 삭제되더라도 deleted_at에 비어 있지 않은 데이터를 쿼리하여 삭제된 데이터를 검색할 수 있습니다. 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

Laravel Admin의 소프트 삭제 기능은 구현하기가 매우 쉽습니다. deleted_at 데이터 테이블 필드만 생성하면 됩니다. 모델에서는 아래와 같이 소프트 삭제 특성, 즉 softDeletes 사용을 사용하여 소프트 삭제를 활성화해야 합니다.

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' => '还原成功']);
}
$dates가 있습니다. > 속성은 시간을 형식화하고 작동할 수 있도록 탄소 인스턴스화된 객체에 이 필드를 추가해야 함을 나타냅니다. 🎜🎜Laravel Admin의 데이터 테이블 구성 요소를 사용하면 일시 삭제된 데이터가 자동으로 필터링됩니다. 일시 삭제된 데이터를 보려면 데이터 표 위의 필터 조건에서 "삭제된 데이터 표시"만 선택하면 됩니다. 🎜🎜Laravel Admin에서는 데이터 소프트 삭제도 매우 쉽습니다. 컨트롤러에서 delete() 메서드를 호출하기만 하면 됩니다. 이 메소드는 deleted_at 필드를 현재 시간으로 설정하여 데이터를 삭제된 것으로 표시합니다. 복원 기능을 사용해야 하는 경우 restore() 메서드를 호출하고 삭제된 데이터의 deleted_at 필드를 null로 설정하면 됩니다. 🎜rrreee🎜간단히 말해서 Laravel Admin의 소프트 삭제 기능은 우리에게 큰 편리함과 유연성을 제공합니다. 이를 통해 일부 운영상의 어려움과 보안 문제를 방지하고 개발을 보다 효율적이고 안정적으로 만들 수 있습니다. 독자들이 이 글에서 소개한 내용을 숙지하고 실제 개발 시 소프트삭제 기능에 적용해 볼 수 있기를 바란다. 🎜

위 내용은 Laravel Admin의 소프트 삭제 기능에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.