сейчас примерно так:
Создаем новость.
Заливаем сразу картинку и присваиваем ей ИД 0. Т.к. в новости текущей мы не знаем какой ИД будет.
Потом когда сохраняем новость, то смотрим в базе все картинки где ИД = 0 и присваеваем им ИД новости.
Пока что не учитываю тут я то, что сразу могут два и больше пользователей загружать. Для этого используется еще доп. поля, типо привязка по логину.
Прставить пакет от spatie и облегчить себе жизнь. Там уже все продумано
А зачем статику средствами пхп гонять?
Этот пакет не гоняет, он за другое отвечает - за связь между медиа-файлами и другими сущностями
А что за пакет?
https://github.com/spatie/laravel-medialibrary
если большой проект, то обычно на статику выделяют отдельный микросервис. Примерно можно так логику сделать: 1. При показе формы генерируется uuid 2. При загрузке на сервис файлов отправляется uuid + файлы 3. Файловый сервис сохраняет связь uuid к файлам 4. При сохранении формы создается запись с указанным uuid 5. Файлы достаем по связи uuid из нюансов не всегда ясно какой файл удалили (например с редактора). так у нас отдельный сервис и не важно какая модель отправляет файлы, файловый сервис ничего не знает про модели, не нужно костылить с id=0 и т.д. а так, если по мелочи, то spatie/laravel-medialibrary прекрасный пакет
Ну так примено такое и я делаю ж. Только у вас сразу uuid герерится, а у меня к картинке ставится id=0 (точнее post_id=0), и при заливке новости уже к нужным картинкам подставляется нужный ИД новости. И при удалении новостей, картинки надо удалять отдельно (с базы и сам файл)
По названию пакета должно быть реализовано загрузка всех файлов, а не только медиа (картинки, видео). В примере нашел только загрузка картинок. Могу ли я загружать через это, например, .doc?
Что хочешь, то и можешь
Де настраиваются форматы?
Норм дока тут: https://spatie.be/docs/laravel-medialibrary/v9/introduction
Обсуждают сегодня