Форум программистов, компьютерный форум, киберфорум
PHP: Laravel
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 21.01.2022
Сообщений: 19

Как удалить картинки media library в транзакции

27.05.2024, 15:02. Показов 344. Ответов 1

Author24 — интернет-сервис помощи студентам
я не понимаю, как мне удалить картинки, которые создались до ошибки в transaction? они в бд дропаются, но не удаляются в storage (в дальнейшем будет использоваться s3, если это играет роль)

PHP Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
public function store(LessonStoreRequest $request, Course $course)
    {
        try {
            // Начинаем транзакцию
            DB::beginTransaction();
 
            // Транзакция для создания урока и блоков
            $lesson = DB::transaction(function () use ($request, $course) {
                // Вызов метода сервиса для создания урока с блоками
                $lesson = $this->service->createLessonWithBlocks($course, $request->title, $request->blocks);
 
                // Обработка медиафайлов
                foreach ($lesson->blocks as $block) {
                    if (is_array($block->params)) {
                        $this->service->handleMedia($block, $block->params);
                    }
                }
 
                return $lesson;
            });
 
            // Фиксация транзакции
            DB::commit();
 
            return new LessonWithBlocksResource($lesson);
        } catch (\Exception $e) {
            // здесь нужно удалить картинки
 
            // Откатываем транзакцию в случае ошибки
            DB::rollBack();
 
            abort(400, "Не удалось создать урок: $e");
        } catch (\Throwable $t) {
 
            // здесь нужно удалить картинки
 
            // Откатываем транзакцию в случае критической ошибки
            DB::rollBack();
 
            abort(500, "Не удалось создать урок: $t");
        }
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.05.2024, 15:02
Ответы с готовыми решениями:

Как в медиа библиотеку media library подгружать фото из соцсетей?
Как в медиа библиотеку media library подгружать фото из соцсетей? Я научился на страницы своего сайта подгружать фото напрямую из...

Save image to Media Library. NullReferenceException
Привет всем. Мне нужно сохранить изображение в Media Library. Столкнулся с такой проблемой: не могу почему то получить ссылку на...

Как для картинки задать @media?
Нужно изменять размер картинки в зависимости от разрешения экрана. Для различных элементов я использую вот такой вывод: в css ...

1
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
2950 / 1928 / 818
Регистрация: 13.03.2010
Сообщений: 6,331
27.05.2024, 15:21
Во время транзакции можно записывать пути/айдишники файлов и в случае ошибки циклом их проходить и удалять.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.05.2024, 15:21
Помогаю со студенческими работами здесь

Как удалить папку library?
Вот всё как было.Сидел я в юньке и вырубили све.Захожу сегодня в проект, и выходит куча ошибок о библиотеках.Как я знаю, то можно удалить...

Транзакции,влияет ли количество изменяемых данных в рамках одной транзакции, как, на что и почему?
ууу

Как удалить атрибут style из @media?
Всем привет! Собственно сам вопрос Как удалить атрибут style из @media?

Как удалить windows media centr
помогите,у меня хрень какая то с windows media centr,7я винда,что то зделал сам не понял,у меня все ярлыки стали медиа центром,все exe...

Как удалить Windows Media Player 11
Ситуация такая: Поставил себе Висту, там плеер был, палёный какой то, во время звучания музыки, громкость то увеличивалась. то уменьшалась,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Линейное решение нелинейной задачи. Формулы от LM по моему решению пока не проверял. В итоговой её формуле видно её заблуждение.
Hrethgir 10.04.2025
В продолжение Эта LM дала ответ похожий на нормальный. В комментриях мой комментарий - похоже она ошиблась с выведением итоговой формулы, но остальные проверю. Assistant qwen2. 5-14b-instruct . . . .
Переменные в Python
py-thonny 10.04.2025
Переменная в программировании — это символическое имя, связанное с областью памяти, в которой хранится значение. Она позволяет получать доступ к данным через понятные человеку идентификаторы, а не. . .
Многопоточность в C#: Task и асинхронные операции
UnmanagedCoder 10.04.2025
Многопоточность позволяет выполнять несколько операций одновременно, что важно для решения двух основных задач: повышения скорости выполнения вычислительно-сложных операций и сохранения отзывчивости. . .
Линейное решение не линейной задачи (емкость вычислений в сравнении с традиционными решениями пока не определена).
Hrethgir 10.04.2025
В рамках предстоящих вычислений пришлось (да, я тоже знаю про корень числа, и про степеня, и прочие теоремы, но. . . ) найти способ нахождения отношения двух углов. . . .
Запуск контейнеров Docker на ARM64
Mr. Docker 09.04.2025
Появление таких решений, как Apple M1/ M2, AWS Graviton, Ampere Altra и Raspberry Pi, сделало использование ARM-систем обыденностью для многих разработчиков и DevOps-инженеров. При этом Docker,. . .
Vue SFC компонент на PHP с Fusion
Jason-Webb 09.04.2025
PHP на сервере и JavaScript на клиенте — классическое сочетание, которое, несмотря на свою эффективность, создает определенный когнитивный диссонанс при разработке. В этом контексте появляются. . .
TypeScript vs JavaScript: Отличия и когда что использовать
Reangularity 09.04.2025
JavaScript появился в 1995 году как творение Брендана Эйха и быстро стал основой интерактивности в вебе. За свою историю он прошел путь от простого языка для манипуляций с DOM до полноценной. . .
Подключение Kafka к Elasticsearch
Codd 09.04.2025
Apache Kafka и Elasticsearch — две мощные технологии, которые при совместном использовании создают эффективную платформу для обработки и анализа данных в реальном времени. Kafka, выступая в роли. . .
Реализации таймеров в Unity
GameUnited 09.04.2025
Время — важный ресурс любой игры. Разработка качественных игровых механик невозможна без грамотного управления временем, а таймеры выступают ключевым инструментом этого управления. Представьте себе. . .
Функции высшего порядка в JavaScript
run.dev 09.04.2025
Функции высшего порядка представляют собой один из фундаментальных камней функционального программирования в JavaScript. По сути, это функции, которые либо принимают другие функции в качестве. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер