В статье речь пойдет о расширении kato/DropZone (https://github.com/perminder-klair/yii2-dropzone) — точнее о том, как разместить несколько виджетов на одной странице.
Если взглянуть на исходный код — ответ кажется достаточно очевидным, но, все же считаю нужным показать рабочий пример размещения нескольких виджетов на одной странице.
Итак, вне зависимости от Вашей разметки — будь-то разные табы или просто инлайново несколько DropZone — суть сводится к указанию уникальных id, dropzoneContainer, previewsContainer при инициализации виджета.
Пример вышесказанного ниже:
= \kato\DropZone::widget([ 'id' => 'dzImage', // <-- уникальные id 'uploadUrl' => Url::toRoute([ 'upload-image', 'id' => $model->id ]), 'dropzoneContainer' => 'dz-container-images', // <-- уникальные dropzoneContainer 'previewsContainer' => 'preview-images', // <-- уникальные previewsContainer 'options' => [ 'maxFilesize' => '2', ], 'clientEvents' => [ 'complete' => "function(file){console.log(file)}", 'removedfile' => "function(file){alert(file.name + ' is removed')}" ], ]);?>= \kato\DropZone::widget([ 'id' => 'dzFile', // <-- уникальные id 'uploadUrl' => Url::toRoute([ 'upload-file', 'id' => $model->id ]), 'dropzoneContainer' => 'dz-container-files', // <-- уникальные dropzoneContainer 'previewsContainer' => 'preview-files', // <-- уникальные previewsContainer 'options' => [ 'maxFilesize' => '2', ], 'clientEvents' => [ 'complete' => "function(file){console.log(file)}", 'removedfile' => "function(file){alert(file.name + ' is removed')}" ], ]);?>
При использовании одного виджета и без условия каких-то особенностей работы — все эти три параметра можно не указывать — они указаны по умолчанию в классе.