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.
- 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.
To install this package, use Composer:
composer require snowrunescape/eloquent-softdeletesUse the SoftDeletes trait in your Eloquent 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;
}To soft delete a record, use the delete method. This will update the status field to the deleted status value.
$model->delete();To restore a soft deleted record, use the restore method. This will update the status field to a non-deleted status value.
$model->restore();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();Contributions are welcome! Please submit a pull request or open an issue to discuss your ideas.
eloquent-softdeletes is made available under the MIT License (MIT). Please see License File for more information.