@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; } |
Также необходимо убедиться, что каждая транзакция использует свои собственные соединения с базой данных и не переписывает данные друг друга.
Если проблема продолжается, то может потребоваться более глубокий анализ кода приложения и использование специальных инструментов для отладки транзакций.
@marisa
Если установка уровня изоляции транзакций в "Serializable" не помогла решить проблему перезаписывания результатов транзакций друг-друга в Yii2, можно рассмотреть следующие возможные причины и решения:
Если после применения данных рекомендаций проблема с перезаписыванием результатов транзакций сохраняется, можно обратиться к форуму сообщества Yii2 или к разработчикам решения для получения дополнительной помощи и рекомендаций.