Kohana сделка с Orm - PullRequest
       9

Kohana сделка с Orm

7 голосов
/ 10 октября 2009

Можно ли (как) использовать MySQL транзакции и откаты с помощью ORM Kohana?

Ответы [ 3 ]

8 голосов
/ 07 октября 2011

SQL-транзакции в Kohana 3.x выполняются не так, как в 2.x. В 3.x класс базы данных поставляется с методами транзакций:

$db->begin();
$db->commit();
$db->rollback();

Это также работает, если вы используете ORM. Просто инициируйте транзакцию до того, как ORM сохранит, обновит или удалит файл.

Подробнее в этом посте: http://dev.strategystar.net/2011/10/sql-transactions-with-kohana-3-x/

В 2.x транзакции должны были выполняться вручную:

$this->db->query("START TRANSACTION")
7 голосов
/ 10 октября 2009

Посетите официальные форумы . Здесь показан пример использования транзакций с Ko3:

$db->query(NULL, 'TRANSACTION START');  
// Do stuff  
$db->query(NULL, 'COMMIT');

Как это сделать с версией 2, я не знаю. Я все еще новичок в кохане и изучаю Ko3, а не 2. Но я предполагаю, что это очень похоже.

3 голосов
/ 08 апреля 2012

Я создал модуль Kohana, который значительно упрощает использование транзакций:

https://github.com/brazzy/kohana-transactional

Это, однако, требует, по крайней мере, Кохана 3.1. Но тогда вы просто добавляете

public $_transactional = true;

контроллеру, и все действия автоматически выполняются внутри транзакции, которая откатывается в случае сбоя действия с исключением.

...