@MarkBogrov

Как правильно прикрепить множественное изображение к материалу на сайте?

Подскажите как лучше организовать прикрепление множества изображений к объекту?

Есть объект статьи к которому прикрепляется через file imput / multiple любое количество изображений.

Загружаю вот так на сервер:
public function upload()
    {
        if ($this->validate()) {
            foreach ($this->imageFiles as $file) {
                $file->saveAs('uploads/' . $file->baseName . '.' . $file->extension);
                $files[] = $file->baseName . '.' . $file->extension; // Пока что, просто для получения массива имён
            }
            return $files;
        } else {
            return false;
        }
    }


Собственно вопрос: как осуществить связь с изображениями и моим объектом?

Когда изображение одно, понятно - залил имя изображения в ту-же таблицу и все дела. А как поступить когда изображений множество, и они могут редактироваться в процессе жизни объекта - добавляться и удалятся по одному или по нескольку? Стоит ли заводить отдельный класс для изображений и каждое загруженное рассматривать как объект со своей строкой с таблице бд или конвертировать массив имён в строку и хранить в той-же одной ячейке в общей таблице, но тогда как обновлять по одной? Как это по человечески делается?
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Добрый вечер.
Создавайте отдельную таблицу, связь по id материала.
Так же создайте отдельный контроллер и модель для изображений, отдельный crud.
Хотя это как Вам нравится.
Изображения, которые принадлежат определённому материалу, можно выводить при помощи gridview на странице просмотра материала(в админке).

P.S. Или используйте для этой цели визуальный редактор типа ckeditor. Изображения помещаются прямо в содержимое материала, редактировать удобно, не заморачиваетесь с загрузкой.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@masterfreelance
программист со стажем
лучше сделать для имен и путей изображений отдельную таблицу и связать ее один-ко-многим с таблицей статей. И соответственно своя модель для работы с таблицей изображений. Мое ИМХО.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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