Alex_Wells
@Alex_Wells
PHP/TS/Kotlin developer

Laravel начать транзакцию и закончить в разных местах?

Здравствуйте! Есть два сервиса, ServiceOne и ServiceTwo. Оба синглтоны.

Из контроллера я дергаю $injectedServiceTwo->someMethod([1, 2, 3, 4]), в котором нужно сделать какие-то действия и дойти до транзакции. При этом важно, что-бы один из запросов транзакции был в ServiceOne, так как именно он отвечает за тот запрос.

Как это правильно реализовать?

Есть вариант с DB::beginTransaction(), DB::commit() - но это добавит кучу лишний try catch, да и как-то не правильно.

Может есть что-то лучше, чем это? Заранее спасибо!
  • Вопрос задан
  • 1035 просмотров
Пригласить эксперта
Ответы на вопрос 1
@D3lphi
Может быть, вам подойдет этот способ:
DB::transaction(function () {
    // do somethimg...
    // Если внутри функции будет брошено исключение, то произойдет автоматический вызов DB::rollback().
    // Если же все пройдет "как надо", будет произведен автоматический коммит.
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы