Skip to content
This repository has been archived by the owner on Jan 3, 2024. It is now read-only.

slicesofcake/delete

Repository files navigation

CakePHP plugin for soft deleting

Build Status Scrutinizer Code Quality LICENSE Releases

This Delete plugin enable soft deletable. Entities aren't removed from your database. Instead, a deleted timestamp is set on the record.

Requirements

It is developed for CakePHP 4.x.

Installation

You can install plugin into your CakePHP application using composer.

The recommended way to install composer packages is:

composer require slicesofcake/delete

Load the Behavior

Load the Behavior in your src/Model/Table/YourTable.php (or if you have AppTable.php). The default field named in database table should be deleted (like created or modified) and compatible type with Time::now() (eg. DATE or DATETIME).

public function initialize(array $config)
{
    parent::initialize($config);

    $this->addBehavior('SlicesCake/Delete.Deleted');
}

You can configuration to customize the Delete plugin:

$this->addBehavior('SlicesCake/Delete.Deleted', [
    'field' => 'deleted_at', // Change column field name
]);

Add column by Migrations plugin

  1. Load Migrations plugin (https://github.com/cakephp/migrations).
  2. Copy file from /vendor/slicesofcake/delete/config/20200101122906_AddDeletedToProducts.example.php to your app main config directory.
  3. Rename to 20200101122906_AddDeletedTo[YourTable].php.
  4. Edit file and rename class with changes above.
  5. Update change method to set table name.
  6. Run migrations by command: cake migrations migrate