sibds/yii2-trash-behavior

AR models behavior that allows to mark models as deleted and then restore them.

Installs: 2 481

Dependents: 1

Suggesters: 0

Security: 0

Stars: 2

Watchers: 6

Forks: 0

Open Issues: 0

Type:yii2-behaviors

v0.4.2 2017-05-17 19:49 UTC

This package is auto-updated.

Last update: 2024-11-03 08:35:00 UTC


README

AR models behavior that allows to mark models as deleted and then restore them.

Build Status Scrutinizer Code Quality Code Coverage

Installation

The preferred way to install this extension is through composer.

Either run

$ composer require sibds/yii2-trash-behavior

or add

"sibds/yii2-trash-behavior": "*"

to the require section of your composer.json file.

How to use?

Paste in the model code:

  public function behaviors()
  {
      return [
          \sibds\behaviors\TrashBehavior::className(),
      ];
  }

To mark a record for deletion, call function delete:

  $model->delete();

The second call delete, delete the record.

To restore record:

  $model->restore();

For the correct selection of records in the model, it is necessary to redefine the function of find:

  public static function find()
  {
      return (new \sibds\behaviors\TrashQuery(get_called_class()))->findRemoved();
  }

Example of use:

  $posts = Post::find()->all();

Selecting only marked for deletion of records:

  $count = Post::find()->onlyRemoved()->count();

Selecting all records:

  $allPosts = Post::find()->withRemoved()->all();