Flash-сообщения не работают во время транзакций с БД в Laravel 5.7 и 5.8 - PullRequest
1 голос
/ 21 марта 2019

Если я вызываю DB::beginTransaction() в контроллере, но перенаправляю без вызова DB::rollBack(), мои флеш-сообщения не появляются на новой странице.

Например, в корзине покупок я запускаю транзакцию, но перенаправляю на страницу платежа, когда платеж кредитной картой завершается неудачно. Ошибка оплаты не появляется, если я сначала не позвоню DB::rollBack().

Это происходит на Laravel 5.7 и 5.8.

Шаги для воспроизведения:

Это не удалось:

DB::beginTransaction();

return redirect("/checkout/payment")->withInput($request->all())->withFlashDanger("Credit Card Number is required.");

Это работает:

DB::beginTransaction();

DB::rollBack();

return redirect("/checkout/payment")->withInput($request->all())->withFlashDanger("Credit Card Number is required.");

Я думаю, что это ошибка, поскольку в документации нет ничего о какой-либо корреляции между транзакциями базы данных и флэш-сообщениями. Я знаю, что добавление вызова rollBack() работает, но я не знаю, является ли это намерением или нет.

Очевидно, что звонить rollBack() - это правильно, но я обнаружил эту проблему, когда писал код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...