ETrashBinBehavior
Добавляет возможность удалять модели в корзину и восстанавливать их.
Установка и настройка
Подготовка модели
В модели должен быть выделен атрибут для статуса удаления. Например: "is_removed"
Подключить поведение к модели
function behaviors() { return array( 'trash'=>array( 'class'=>'ext.yiiext.behaviors.model.trashBin.ETrashBinBehavior', // Имя столбца где хранится статус удаления (обязательное свойство) 'trashFlagField'=>'is_removed', // Значение которое устанавливается при удалении в поле $trashFlagField // По умолчанию 1 'removedFlag'=>1, // Значение которое устанавливается при восстановлении в поле $trashFlagField // По умолчанию 0 'restoredFlag'=>0, ), ); }
Минимальные требования
API
remove()
Удаляем модель в корзину.
$user=User::model()->findByPk(1); $user->remove();
restore()
Восстанавливаем модель из корзины.
// Так как при включенном поведении удаленные модели игнорируются, // нужно включить поиск удаленных моделей User::model()->withRemoved(); // или на время поиска выключить поведение User::model()->disableBehavior('trash'); $user=User::model()->findByPk(1); // Включаем снова поведение если выключали. User::model()->enableBehavior('trash'); $user->restore();
getIsRemoved()
Проверяем удалена ли модель в корзину.
$user1=User::model()->withRemoved()->findByPk(1); echo $user1->getIsRemoved() ? 'status=removed' : 'status=normal'; $user2=User::model()->withRemoved()->findByPk(2); echo $user2->isRemoved ? 'status=removed' : 'status=normal'; }
withRemoved()
Включаем поиск удаленных записей только при следующем запросе.
$users=User::model()->withRemoved()->findAll();
Changelog
0.3
- Doc corrections and English docs (Sam Dark)
0.2
[] Change method isRemoved() to getIsRemoved() [+] Add method filterRemoved() for except finding removed models. [+] Add property $findRemoved to enable or disable find removed models. [+] Unit tests. [+] Add method withRemoved() for find removed models. [] Changed translation category to 'yiiext'. [*] New naming conventions.
0.1
[+] Initial public release.