snowrunescape/eloquent-softdeletes

Eloquent extension for soft deletes using a status field

1.0.0 2024-07-21 12:51 UTC

This package is auto-updated.

Last update: 2025-04-29 01:36:38 UTC


README

Eloquent Status SoftDeletes is an extension for the Eloquent ORM to enable soft delete functionality using a status field. This approach allows you to mark records as deleted by setting a specific status value, making it easy to manage "deleted" records while keeping them in the database.

Features

  • Soft delete records by updating the status field.
  • Customize the status value to indicate a soft delete.
  • Seamlessly restore soft deleted records.
  • Include or exclude soft deleted records in queries.

Installation

To install this package, use Composer:

composer require snowrunescape/eloquent-softdeletes

Usage

Use the SoftDeletes trait in your Eloquent model.

Example

Setting Up Your Model

To enable status-based soft deletes in your model, use the SoftDeletes trait and define the status field and the value that indicates a soft delete.

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

class YourModel extends Model
{
    use SoftDeletes;
}

Soft Deleting a Record

To soft delete a record, use the delete method. This will update the status field to the deleted status value.

$model->delete();

Restoring a Record

To restore a soft deleted record, use the restore method. This will update the status field to a non-deleted status value.

$model->restore();

Querying Soft Deleted Records

To include soft deleted records in a query, use the withTrashed method.

$allRecords = YourModel::withTrashed()->get();

To only get soft deleted records, use the onlyTrashed method.

$deletedRecords = YourModel::onlyTrashed()->get();

To exclude soft deleted records from a query, use the withoutTrashed method (this is the default behavior).

$activeRecords = YourModel::withoutTrashed()->get();

Contributing

Contributions are welcome! Please submit a pull request or open an issue to discuss your ideas.

License

eloquent-softdeletes is made available under the MIT License (MIT). Please see License File for more information.