Как удалять прикрепленные файлы к посту при редактировании поста?

Имеется возможность создавать/редактировать/удалять записи на сайте. Сайт на Yii2.
При создании записи можно прикреплять файлы. Реализовано с помощью удобного виджета
https://github.com/kartik-v/yii2-widget-fileinput
При удалении записи - делаем просто unlink и файлы удаляются.
При редактировании как реализовать удаление некоторых файлов этой записи? Например как на стене ВКонтакте, пользователь видит прикрепленные файлы и может часть из них удалить при редактировании.
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
Вариантов 2: (код не пишу - описываю принцип)
1) Аяксом - при клике на некий элемент вызывается запрос к экшену удаления изображения, в параметрах передаете ид объекта изображения(вы же в отдельной таблице храните картинки и связываете их по парент_ид с записью, надеюсь?). Создаете объект image по id, вызываете метод удаления. На фронте получаете ответ сервера в аякс коллбэк, при успешном удалении выпиливаете из ДОМ картинку и элементы управления к ней.
Плюс решения - быстро и без перезагрузки.
Минус - иногда удаляют картинку случайно, в данном случае(в отличие от варианта 2) откат невозможен.
2) В хидден поле пишете айдишники удаляемых картинок по клику на иконку удаления(и соответственно выпиливаете картинку из ДОМ), по субмиту на сервере проверяете поле, вытаскиваете из него айдишники картинок, далее циклом как в варианте 1.
Плюс решения - до субмита формы реального удаления файлов не будет. То есть все можно откатить просто сделав рефреш страницы.
Минус - ... для удаления нужно сделать субмит, это не всегда удобно если вы просто хотите удалить пару картинок из записи. Выглядит менее юзерфрендли.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы