icalab/yii2-ica-mediafile

此包的最新版本(dev-master)没有可用的许可信息。

模型附件媒体文件的扩展。

安装: 186

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 3

分支: 2

开放问题: 0

类型:yii2-extension

dev-master 2016-04-06 07:12 UTC

This package is not auto-updated.

Last update: 2024-09-28 18:21:18 UTC


README

模型附件媒体文件的扩展

安装

  1. 使用composer安装mediafile扩展
composer require icalab/yii2-ica-mediafile
  1. 运行提供的迁移
php yii migrate --migrationPath=@icalab/mediafile/migrations
  1. 在web目录下创建一个名为mediafiles的目录,并使其对web服务器可写。

使用方法

相关的代码文件在文件顶部包含文档。还有一个名为Voorbeeld的模型和VoorbeeldController,您可以使用它们来查看此模块的工作示例。

简而言之

  1. 创建您的模型。
  2. 将ModelWithMediafileBehavior行为附加到您的模型上。
  3. 创建一个名为yourmodel_mediafile的连接表,包含parentid和mediafileid列。
  4. 将ControllerWithMediafileBehavior行为附加到您的控制器上。将您的模型类名作为参数(modelClass)提供。
  5. 在您的控制器中创建一个action actionUnassign($id, $mediafile)操作,并使其调用来自ControllerWithMediafileBehavior行为的unassignMediafile($id, $mediafile)方法。
  6. 在您的更新方法中,通过添加如下代码处理文件上传
            $model->newFile = UploadedFile::getInstance($model, 'newFile');
            if($model->validate() && (! $model->newFiles || $this->saveMediaFiles($model)))
            {
                $model->save();
                $this->redirect(['update', 'id' => $id]);
            }
  1. 在您的表单视图中,显示AttachMediafileWidget小部件的输出。将模型和表单作为参数传递给此小部件
echo AttachMediafileWidget::widget(['model' => $model, 'form' => $form]);

注意

  • 可以通过使用url mediafile/view?id=id_of_file从web访问上传的媒体文件
  • 默认情况下,上传的图像被转换为PNG以避免进一步的质量损失。这是我们构建此模块的项目的要求。如果您不希望这样做,请将FALSE作为额外参数传递给从ModelWithMediafileBehavior行为继承的saveMediafile方法。
  • AttachMediafileWidget使用Kartik Visweswaran的优秀FileInput小部件:https://github.com/kartik-v/yii2-widget-fileinput