Я создаю фитнес-упражнения в Nova и использую собственные поля File и Image для обработки загрузок.Однако я бы хотел, чтобы файлы сохранялись в подкаталоге с идентификатором модели:
- public
- media
- {id}
- video.mp4
- image.jpeg
. Это прекрасно работает при обновлении существующей модели (идентификатор уже доступен), но файлы загружаются вбазовый путь загрузки public/media
для новых упражнений.Это означает, что идентификатор модели еще не доступен во время загрузки файла.
Возможно ли достичь этого любым другим способом?Как бы вы это сделали, например:
- Можете ли вы как-нибудь поставить в очередь закачки (что было бы неплохо для ускорения работы и для администраторов)?Поставленные в очередь задачи должны иметь возможность доступа к идентификатору модели, верно?Не удалось найти никаких документов об очередях в Nova.
- прослушивание события
created
, получение идентификатора, создание каталога, перемещение файлов и обновление полей базы данных?Звучит выполнимо, но довольно сложная работа. - написать собственные
store
процедуры для медиа-файлов и обработать их там?Будет ли он работать после создания модели или до ее сохранения в базе данных, чтобы идентификатор не был доступен? - просто замените идентификатор какой-то уникальной строкой, которую можно сгенерировать заранее и вместо этого добавить в путь?Как бы вы сохранили его, чтобы он был доступен для последующего редактирования?Получить его каждый раз из пути к сохраненному файлу мультимедиа или сохранить как отдельное поле в базе данных?
Я новичок в Laravel и Nova и пока не знаю лучших практик.Буду признателен за любую помощь / совет по этому вопросу.