PHPackages                             dcat/laravel-softdeletes - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. dcat/laravel-softdeletes

ActiveLibrary[Database &amp; ORM](/categories/database)

dcat/laravel-softdeletes
========================

Laravel ORM softDeletes

1.0.1(5y ago)374.5k↓33.3%3[3 issues](https://github.com/jqhph/laravel-softdeletes/issues)MITPHPPHP &gt;=7.0

Since Jan 16Pushed 5y ago1 watchersCompare

[ Source](https://github.com/jqhph/laravel-softdeletes)[ Packagist](https://packagist.org/packages/dcat/laravel-softdeletes)[ Docs](https://github.com/jqhph/laravel-softdeletes)[ RSS](/packages/dcat-laravel-softdeletes/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (4)Versions (3)Used By (0)

LARAVEL SOFTDELETES
===================

[](#laravel-softdeletes)

 [![](https://camo.githubusercontent.com/ffe7adf17b1d38c79e0e81f80884e0e21f43129b2b96c7a123ea3bd032f09cb2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d3733383944382e7376673f7374796c653d666c6174)](https://github.com/jqhph/laravel-softdeletes/blob/master/LICENSE) [ ![StyleCI](https://camo.githubusercontent.com/53827c5b158b646cc4ce0e18dde25b299525e5d6ae484e7743ee7c7aad19cca5/68747470733a2f2f6769746875622e7374796c6563692e696f2f7265706f732f3333303039383033312f736869656c64) ](https://github.styleci.io/repos/330098031) [![](https://camo.githubusercontent.com/519714b0f6cc86c5941f83c998352373a760f13afc76d3ca5772f9d9170736d4/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f6a716870682f6c61726176656c2d736f667464656c657465732e7376673f636f6c6f723d343039394445)](https://github.com/jqhph/laravel-softdeletes/releases) [![](https://camo.githubusercontent.com/58ee6668ad0f0c53e9a258560f4eb7483b281fe1b8520bf8bdc2cb248bff4a46/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d372b2d3539613966382e7376673f7374796c653d666c6174)](https://camo.githubusercontent.com/58ee6668ad0f0c53e9a258560f4eb7483b281fe1b8520bf8bdc2cb248bff4a46/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d372b2d3539613966382e7376673f7374796c653d666c6174)

`Laravel softdeletes`是一个用于替代`Laravel`内置的软删除`softDelets`功能的扩展包，可以把软删数据存储到独立的数据表中，从而不影响给原始表字段增加唯一索引，且可以起到提升性能的作用。

环境
--

[](#环境)

- PHP &gt;= 7
- laravel &gt;= 5.5

安装
--

[](#安装)

```
composer require dcat/laravel-softdeletes
```

### 简介

[](#简介)

`Laravel`内置的`softDelets`功能会把软删的数据和正常数据存在同一个数据表中，这样会导致数据表的字段无法直接添加`unique`索引，因为很容易产生冲突，这样会给实际业务开发带来诸多不必要的困扰。 而`Laravel softdeletes`则可以把软删数据存储到独立的数据表中，从而不影响给原始表字段增加唯一索引，且可以起到提升性能的作用。

### 使用

[](#使用)

首先需要创建两张字段一模一样的数据表，并且两张表都需要添加`deleted_at`字段

```
// 文章表
Schema::create('posts', function (Blueprint $table) {
	$table->bigIncrements('id');
	$table->string('title')->nullable();
	$table->string('body')->nullable();

	// 两张表都需要删除时间字段
	$table->timestamp('deleted_at')->nullable();

	$table->timestamps();
});

// 文章软删除表
Schema::create('posts_trash', function (Blueprint $table) {
	$table->bigIncrements('id');
	$table->string('title')->nullable();
	$table->string('body')->nullable();

	// 两张表都需要删除时间字段
	$table->timestamp('deleted_at')->nullable();

	$table->timestamps();
});
```

模型定义如下，默认的软删除表表名为：`{原始表}_trash`，如上面的`posts`表的默认软删除表表名是`posts_trash`

```
