У меня есть форма сайта, где нужно выбирать изображение, как сделать, чтобы после сохранения оно приходило в БД, виджет для импорта изображений у меня работает с многомерным массивом, чтобы получать оттуда данные прикрепляю код ActiveForm.
<div class="main_company_clipart">
<?php $form = ActiveForm::begin([
'options' => ['enctype' => 'multipart/form-data'],
'action' => ['main-companies/settings-save'],
'id' => 'main_company_id',
]); ?>
<?php foreach ($imagesModel as $imageModel) { ?>
<div class="form-group image-uploader" id= <?= $clipart['id'] ?>>
<?= $form->field($clipart, $imageModel['column'])->hiddenInput([
'data-url' => Url::toRoute([$imageModel['type']]),
'data-id' => $clipart->id])->label(false); ?>
<?= Html::label(Yii::t('app', $imageModel['label'])); ?>
<?= ImageInput::widget([
'name' => $imageModel['column'],
'id' => $imageModel['id'],
'nameField' => $imageModel['attribute'],
'modelName' => 'MainCompanyClipart',
'options' => [
'accept' => 'image/*',
],
'pluginOptions' => [
'maxFileCount' => 1,
'Preview' => null,
'uploadUrl' => Url::to(['/media/upload']),
'deleteUrl' => Url::toRoute([
'/media/delete',
'model_id' => $clipart->id,
'type' => $imageModel['type'],
]),
'uploadExtraData' => [
'fileKey' => $imageModel['column'],
'resourceType' => $imageModel['id']
],
],
]);
?>
</div>
<?php } ?>
<?php ActiveForm::end(); ?>
</div>
Прикрепляю массив откуда он берёт данные
$imagesModel = [
[
'id' => 'card-icon-id',
'column' => 'card_icon_id',
'attribute' => 'card_icon',
'label' => '',
'preview' => null,
'type' => 'icon',
],
[
'id' => 'card-image-id',
'column' => 'card_image_id',
'attribute' => 'card_image',
'label' => '',
'preview' => null,
'type' => 'image',
],