Как добавить изображение к модели?

SkeekS CMS имеет компонент хранилища файлов. Каждый загруженный файл в данное хранилище, хранится в базе данных и имеет собственную модель данных.

Представим что у нас есть продукт Product . И мы хотим загружать изображение в файловое хранилище и првязывать его к продукту.

Задача решается следующим образом.

1) Модель Product должна содержать свойство image_id (int)

2) Модель Product должен иметь behavior

<?php

class Product extends \yii\db\ActiveRecord
{
     /**
     * @return array
     */
    public function behaviors()
    {
        return array_merge(parent::behaviors(), [

            \skeeks\cms\models\behaviors\HasStorageFile::className() =>
            [
                'class' => \skeeks\cms\models\behaviors\HasStorageFile::className(),
                'fields' => ['image_id']
            ]
        ]);
    }

}

И собственно в форме используется соотвествующий виджет:

<?= $form->field($product, 'image_id')->widget(
     \skeeks\cms\widgets\formInputs\StorageImage::className()
); ?>

На этом все, image_id - может называться как угодно, и полей может быть сколько угодно. image1_id image2_id ...

Все комментарии (0)
Нет комментариев