mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-02 13:02:24 +08:00
Russian translation updates [skip ci]
This commit is contained in:
@ -644,9 +644,16 @@ try {
|
|||||||
} catch(\Exception $e) {
|
} catch(\Exception $e) {
|
||||||
$transaction->rollBack();
|
$transaction->rollBack();
|
||||||
throw $e;
|
throw $e;
|
||||||
|
} catch(\Throwable $e) {
|
||||||
|
$transaction->rollBack();
|
||||||
|
throw $e;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> Note: в коде выше ради совместимости с PHP 5.x и PHP 7.x использованы два блока catch.
|
||||||
|
> `\Exception` реализует интерфейс [`\Throwable` interface](http://php.net/manual/ru/class.throwable.php)
|
||||||
|
> начиная с PHP 7.0. Если вы используете только PHP 7 и новее, можете пропустить блок с `\Exception`.
|
||||||
|
|
||||||
Второй способ заключается в том, чтобы перечислить операции с базой данных, которые требуют тразнакционного выполнения,
|
Второй способ заключается в том, чтобы перечислить операции с базой данных, которые требуют тразнакционного выполнения,
|
||||||
в методе [[yii\db\ActiveRecord::transactions()]]. Например:
|
в методе [[yii\db\ActiveRecord::transactions()]]. Например:
|
||||||
|
|
||||||
|
|||||||
@ -329,15 +329,18 @@ try {
|
|||||||
// ... executing other SQL statements ...
|
// ... executing other SQL statements ...
|
||||||
|
|
||||||
$transaction->commit();
|
$transaction->commit();
|
||||||
|
|
||||||
} catch(\Exception $e) {
|
} catch(\Exception $e) {
|
||||||
|
|
||||||
$transaction->rollBack();
|
$transaction->rollBack();
|
||||||
|
|
||||||
throw $e;
|
throw $e;
|
||||||
|
} catch(\Throwable $e) {
|
||||||
|
$transaction->rollBack();
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> Note: в коде выше ради совместимости с PHP 5.x и PHP 7.x использованы два блока catch.
|
||||||
|
> `\Exception` реализует интерфейс [`\Throwable` interface](http://php.net/manual/ru/class.throwable.php)
|
||||||
|
> начиная с PHP 7.0. Если вы используете только PHP 7 и новее, можете пропустить блок с `\Exception`.
|
||||||
|
|
||||||
При вызове метода [[yii\db\Connection::beginTransaction()|beginTransaction()]], будет запущена новая транзакция.
|
При вызове метода [[yii\db\Connection::beginTransaction()|beginTransaction()]], будет запущена новая транзакция.
|
||||||
Транзакция представлена объектом [[yii\db\Transaction]] сохранённым в переменной `$transaction`. Потом, запросы будут
|
Транзакция представлена объектом [[yii\db\Transaction]] сохранённым в переменной `$transaction`. Потом, запросы будут
|
||||||
выполняться в блоке `try...catch...`. Если запросы будут выполнены удачно, будет выполнен метод [[yii\db\Transaction::commit()|commit()]].
|
выполняться в блоке `try...catch...`. Если запросы будут выполнены удачно, будет выполнен метод [[yii\db\Transaction::commit()|commit()]].
|
||||||
@ -357,7 +360,7 @@ Yii::$app->db->transaction(function ($db) {
|
|||||||
....
|
....
|
||||||
}, $isolationLevel);
|
}, $isolationLevel);
|
||||||
|
|
||||||
// or alternatively
|
// или
|
||||||
|
|
||||||
$transaction = Yii::$app->db->beginTransaction($isolationLevel);
|
$transaction = Yii::$app->db->beginTransaction($isolationLevel);
|
||||||
```
|
```
|
||||||
@ -393,10 +396,10 @@ Yii предоставляет четыре константы для наибо
|
|||||||
|
|
||||||
```php
|
```php
|
||||||
Yii::$app->db->transaction(function ($db) {
|
Yii::$app->db->transaction(function ($db) {
|
||||||
// outer transaction
|
// внешняя транзакция
|
||||||
|
|
||||||
$db->transaction(function ($db) {
|
$db->transaction(function ($db) {
|
||||||
// inner transaction
|
// внутренняя транзакция
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
@ -415,11 +418,17 @@ try {
|
|||||||
$innerTransaction->commit();
|
$innerTransaction->commit();
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$innerTransaction->rollBack();
|
$innerTransaction->rollBack();
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
$innerTransaction->rollBack();
|
||||||
|
throw $e;
|
||||||
}
|
}
|
||||||
|
|
||||||
$outerTransaction->commit();
|
$outerTransaction->commit();
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$outerTransaction->rollBack();
|
$outerTransaction->rollBack();
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
$innerTransaction->rollBack();
|
||||||
|
throw $e;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -560,6 +569,9 @@ try {
|
|||||||
} catch(\Exception $e) {
|
} catch(\Exception $e) {
|
||||||
$transaction->rollBack();
|
$transaction->rollBack();
|
||||||
throw $e;
|
throw $e;
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
$innerTransaction->rollBack();
|
||||||
|
throw $e;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user