170 похожих чатов

Друзья, подскажите, плиз. Я делаю импорт файлов с помощью laravel-excel.

Есть класс ManuresImport, в нём метод collection(), а там уже запускается запись в базу через модель, вот так:

ManuresImportStatus::create([
'status' => 'Ошибка во время импорта111222',
'user_id' => 1
]);

Всё хорошо работает. Но если этот же кусок кода поместить в метод onFailure() - то уже ничего не пишется в базу. Я делаю дамп и до, и после этого куска кода - всё дампится.
В чём причина такого поведения?

5 ответов

2 просмотра

Может импорт работает в транзакции и при ошибке идет ролбек, хз Но зачем тебе чтоб писалось?

Sergey-Rushev Автор вопроса
Руслан
Может импорт работает в транзакции и при ошибке ид...

у меня есть таблица в базе, куда надо писать статусы импорта после каждой попытки юзера загрузить эксель-файл (id юзера, кот. делал импорт, статус (например, ошибка) и т.д.). И я хотел реализовать такую логику - если поля эксель-файла не прошли валидацию, то мы заходим в метод onFailure() и оттуда пишем в базу строку с колонкой статуса "Ошибка во время импорта". Если же всё ок, то мы в этот метод не попадаем, и запись в базу идёт из другого места (например, из метода collection()) и со статусом "всё ок".

Sergey-Rushev Автор вопроса
Руслан
Может импорт работает в транзакции и при ошибке ид...

сейчас вижу, что я криво объяснил, запутал, наверное

Sergey Rushev
сейчас вижу, что я криво объяснил, запутал, наверн...

Хех, вроде понял, обернуть запись про ошибку в транзакцию внутри failure Или в доке чет есть

Sergey-Rushev Автор вопроса
Руслан
Хех, вроде понял, обернуть запись про ошибку в тра...

да, вот в доке: Database transactions The entire import is automatically wrapped in a database transaction, that means that every error will rollback the entire import. When using batch inserts, only the current batch will be rollbacked. Наверное, как-то по-другому надо делать то, что я задумал)

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
49
читать файл максимально быстро? странный вопрос))
zamtmn
53
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
How to create an OS in C? what to study?
Linus
18
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
@HemulGM Параметры у AddStream поменялись? Несостыковка какая-то
Катерина Свиридова
12
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Народ, с прошедшими и наступающими. Ща полную ересь прогоню, но фишка в том, что это не обычная алкогольная ересь Либера, а я реально хз что делать. Сайт с 2012-го года Косяк...
Alexey Liber
1
Карта сайта