Ainda estou começando a caminhar no yii e espero em breve poder ajudar também aqui…
Estou com uma dúvida, no desenvolvimento do administrativo estamos criando um log de alterações (até estamos usando o audittrail que usa behavior), mas algumas funções o audittrail não tem e acho que seria melhor implementar no before(Delete,update,insert).
Quando a pessoa executa uma ação, por exemplo: Deletar o item de id 5.
Existe uma forma de no beforeDelete da model eu gerar um SQL inverso? seria por exemplo um SQl de inserção desse mesmo registro e gravar esse sql no banco? pois dai teriamos a opção de "reverter" uma alteração feita pelo usuário…
Crie o modelo dessa tabela que irá armazenar os registros excluídos.
Se vc achar que não é necessário criar um modelo para a tabela que armazena os registros excluídos execute o comando SQL manualmente. Veja como em: CDbConnection.
Ex.:
protected function beforeDelete(){
//com modelo
$model = new TabelaQueArmazenaOsExcluidos;
$model->registro = $this->registros;//aqui é com vc...
$model->save();
//sem modelo
$conexao = Yii::app()->db;
$conexao->active = true;
$comando=$conexao->createCommand($sqlStatement);
$comando->execute();
}