В Yii фреймворке есть несколько удобных плагинов для загрузки аватарок с предпросмотром и кропом. Один из наиболее популярных плагинов - это "yii2-widget-fileinput".
"yii2-widget-fileinput" - это расширение для Yii2, которое предоставляет удобную функциональность для загрузки файлов, включая аватарки, с предварительным просмотром и возможностью кропа изображений.
Для начала, вам необходимо установить плагин. Как правило, установка происходит через менеджер пакетов Composer. Вы можете использовать следующую команду для установки:
composer require kartik-v/yii2-widget-fileinput
После установки, вам необходимо подключить плагин к вашему проекту. Для этого добавьте следующую строку в секцию "require" в файле composer.json:
"kartik-v/yii2-widget-fileinput": "@dev"
Затем запустите команду composer update
.
После подключения плагина, вы можете использовать его в вашем коде. Включите виджет в вашей форме, указав путь к контроллеру, который будет обрабатывать загруженные файлы:
use kartikfileFileInput; // Your form code <?= $form->field($model, 'avatar')->widget(FileInput::classname(), [ 'options' => ['accept' => 'image/*'], 'pluginOptions' => [ 'showUpload' => false, 'browseLabel' => 'Выбрать', 'removeLabel' => 'Удалить', 'initialPreview' => [ // если у вас уже есть загруженный аватар, то его отображение Html::img($model->avatar, ['class' => 'file-preview-image']) ], 'initialCaption' => $model->avatar, 'overwriteInitial' => true, 'previewZoomSettings' => [ 'image' => ['width' => 'auto', 'height' => '100%'] ], 'showRemove' => false, 'showUpload' => false ] ]) ?>
В коде выше я использовал пример для поля "avatar" модели $model. Нужно настроить соответствующие атрибуты модели на вашем проекте.
С помощью этого плагина вы можете загружать и кропать аватарки с предпросмотром. Он также предлагает различные настройки, которые можно настроить под ваши конкретные требования.
У "yii2-widget-fileinput" также есть подробная документация, которая поможет вам разобраться во всех возможностях и настройках плагина. Вы можете найти ее на официальной странице расширения на сайте GitHub.