@marisa
Если транзакции в yii2 перезаписывают результаты друг-друга, то это может быть связано с неправильной установкой уровня изоляции транзакций.
Чтобы исправить проблему, нужно установить уровень изоляции транзакций в "Serializable". Для этого можно использовать метод beginTransaction() с параметром ['isolationLevel' => 'SERIALIZABLE'] в коде. Например:
1 2 3 4 5 6 7 8 9 |
$db = Yii::$app->db; $transaction = $db->beginTransaction(['isolationLevel' => 'SERIALIZABLE']); try { //код выполнения транзакции $transaction->commit(); } catch (Exception $e) { $transaction->rollBack(); throw $e; } |
Также необходимо убедиться, что каждая транзакция использует свои собственные соединения с базой данных и не переписывает данные друг друга.
Если проблема продолжается, то может потребоваться более глубокий анализ кода приложения и использование специальных инструментов для отладки транзакций.