Estou seguindo este tutorial http://www.yiiframework.com/doc/guide/1.1/pt_br/database.dao
Estou recebendo sempre "[i]Error 500
CDbTransaction está inativo e não pode realziar as operações commit ou roll back.[/i]" no meu actionCreate.
Vejam o trecho do código:
public function actionCreate() {
$modelPessoa = new Pessoa;
$modelPessoaFisica = new PessoaFisica;
$modelTelefone = new Telefone;
$modelEmail = new Email;
$modelEndereco = new Endereco;
// Uncomment the following line if AJAX validation is needed
$this->performAjaxValidation(array($modelPessoa, $modelPessoaFisica, $modelTelefone, $modelEmail, $modelEndereco));
if (isset($_POST['Pessoa'])) {
$modelPessoa->attributes = $_POST['Pessoa'];
$modelPessoaFisica->attributes = $_POST['PessoaFisica'];
$modelTelefone->attributes = $_POST['Telefone'];
$modelEmail->attributes = $_POST['Email'];
$modelEndereco->attributes = $_POST['Endereco'];
$valid = $modelPessoa->validate();
$valid = $modelPessoaFisica->validate() && $valid;
$valid = $modelTelefone->validate() && $valid;
$valid = $modelEmail->validate() && $valid;
$valid = $modelEndereco->validate() && $valid;
if ($valid) {
$connection = Yii::app()->db;
$connection->active = true;
$transaction = $connection->beginTransaction();
try {
$connection->createCommand($modelPessoa->insert());
$modelPessoaFisica->id_cadastro_pessoa = $modelPessoa->primaryKey;
$modelTelefone->id_cadastro_pessoa = $modelPessoa->primaryKey;
$modelEmail->id_cadastro_pessoa = $modelPessoa->primaryKey;
$modelEndereco->id_cadastro_pessoa = $modelPessoa->primaryKey;
$connection->createCommand($modelPessoaFisica->insert());
$connection->createCommand($modelTelefone->insert());
$connection->createCommand($modelEmail->insert());
$connection->createCommand($modelEndereco->insert());
$transaction->commit();
Yii::app()->user->setFlash('success', Yii::app()->getParams('MESSAGE_SUCCESS'));
$this->redirect(array('view', 'id' => $modelPessoa->id));
} catch (Exception $e) {
$transaction->rollback();
Yii::app()->user->setFlash('error', "{$e->getMessage()}");
}
}
}