Foreign key and transaction

I’m trying to use transaction when creating table group, and table with relation user-group. It works ok when I don’t use transaction, so the naming of the attributes is correct. Here is the code:


$db = Yii::app()->db; 

            $transaction = $db->beginTransaction();




            try {


                $model->attributes=$_POST['MyGroup'];


                $model->save();

                $model->refresh();


                $userMyGroup = new UserMyGroup();

                $userMyGroup->IDMyGroup = $model->IDMyGroup;

                $userMyGroup->IDUser    = Yii::app()->user->id;


                $userMyGroup->save();


                $transaction->commit();

            } catch (CDbException $ex) {

                Yii::log("Couldn't create group:".$ex->errorInfo[1], CLogger::LEVEL_ERROR);

                $transaction->rollback();

            }

The error is:


 The INSERT statement conflicted with the FOREIGN KEY constraint "FK_UserMyGroup_MyGroup". The conflict occurred in database "MyDatabase", table "dbo.MyGroup", column 'IDMyGroup'.. The SQL statement executed was: INSERT INTO [dbo].[UserMyGroup] ([IDMyGroup], [IDUser]) VALUES (:yp0, :yp1). Bound with :yp0=4022, :yp1=1

Problem is probably that the saved model might not be in database while saving the second model(userMyGroup) with the foreign key. How to do the transaction correctly?

I’ve found out that the problem is caused by audit module (http://cornernote.github.io/yii-audit-module/), it is trying to log the query, but can’t as it is in transaction and not really saved yet in database. I’m trying to figure out how to use this transaction along with the module…