Skip to content

Instantly share code, notes, and snippets.

@thomseddon
Last active December 26, 2015 12:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thomseddon/7153307 to your computer and use it in GitHub Desktop.
Save thomseddon/7153307 to your computer and use it in GitHub Desktop.
CakePHP Soft Delete Behaviour
<?php
App::uses('ModelBehavior', 'Model');
class SoftDeleteBehavior extends ModelBehavior {
public function setup(Model $Model, $settings = array()) {
$field = isset($settings['field']) ? $settings['field'] : 'is_deleted';
$this->settings[$Model->alias]['field'] = $field;
}
public function beforeFind(Model $Model, $query) {
$field = $Model->escapeField($this->settings[$Model->alias]['field']);
if (!isset($query['conditions'][$field])) {
$query['conditions'][$field] = false;
}
return $query;
}
public function softDelete(Model $Model) {
return $Model->saveField($this->settings[$Model->alias]['field'], true);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment