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 ...
- Семенов Александр
- /
- 16.10.2015
- /
- 0
- /
- 4226
Alle Kommentare (0)