fruktozets/yii2-dropzone

Yii2 Dropzone 上传器

安装: 30

依赖者: 1

建议者: 0

安全性: 0

类型:yii2-extension

1.1.1 2018-09-20 10:56 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:49:22 UTC


README

需要源代码

composer require "fruktozets/yii2-dropzone"

执行迁移

'controllerMap' => [
    'migrate' => [
        ...
        'migrationNamespaces' => [
            ...
            'fruktozets\dropzone',
        ],
    ],
],

创建一个连接图像和所有者的表。

$this->createTable('user_to_file', [
    'user_id' => $this->integer(),
    'file_id' => $this->integer(),
    //'type' => $this->smallInteger()->notNull()->defaultValue(2),

]);

使用小部件

echo $form->field($model, 'images')->widget(DropZone::className(), [
    'uploadUrl' => ['site/upload'],
]) 

使用操作

public function actions()
{
   return [
       'upload' => [
           'class' => 'fruktozets\dropzone\actions\UploadAction',
           'fileRule' => ['file', 'file', 'extensions' => ['jpg'], 'maxSize' => 1024*1024],
       ],

   ];
}

实现 IAttachable 接口

class UserToFile extends \yii\db\ActiveRecord implements IAttachable

使用行为

警告!"行为"名称必须等于"属性"名称!如果您想使用 MultipleFilesBehavior,请别忘了将关联文件模型的 'attribute' 添加到您的模型中。

使用 MultipleFilesBehavior 通过第三方表连接多个文件

public function behaviors()
{
    $behaviors = parent::behaviors();
    
    $behaviors['images'] = [
        'class' => MultipleFilesBehavior::class,
        'attribute' => 'images',
        'linkModelClass' => UserToFile::class,
        'additionalProperties' => ['type' => UserToFile::TYPE_IMAGE_MAIN,],
    ];

    return $behaviors;
}

使用 FileBehavior 用于单个文件

public function behaviors()
{
    $behaviors = parent::behaviors();
    
    $behaviors['image_id'] = [
        'class' => FileBehavior::class,
        'attribute' => 'image_id',
    ];

    return $behaviors;
}

别忘了将您的属性添加到模型中的规则中。

public function rules()
{
    return [
        ```
        [['images'], 'safe'],
    ];
}