icalab / yii2-ica-mediafile
此包的最新版本(dev-master)没有可用的许可信息。
模型附件媒体文件的扩展。
dev-master
2016-04-06 07:12 UTC
Requires
This package is not auto-updated.
Last update: 2024-09-28 18:21:18 UTC
README
模型附件媒体文件的扩展
安装
- 使用composer安装mediafile扩展
composer require icalab/yii2-ica-mediafile
- 运行提供的迁移
php yii migrate --migrationPath=@icalab/mediafile/migrations
- 在web目录下创建一个名为mediafiles的目录,并使其对web服务器可写。
使用方法
相关的代码文件在文件顶部包含文档。还有一个名为Voorbeeld的模型和VoorbeeldController,您可以使用它们来查看此模块的工作示例。
简而言之
- 创建您的模型。
- 将ModelWithMediafileBehavior行为附加到您的模型上。
- 创建一个名为yourmodel_mediafile的连接表,包含parentid和mediafileid列。
- 将ControllerWithMediafileBehavior行为附加到您的控制器上。将您的模型类名作为参数(modelClass)提供。
- 在您的控制器中创建一个action actionUnassign($id, $mediafile)操作,并使其调用来自ControllerWithMediafileBehavior行为的unassignMediafile($id, $mediafile)方法。
- 在您的更新方法中,通过添加如下代码处理文件上传
$model->newFile = UploadedFile::getInstance($model, 'newFile'); if($model->validate() && (! $model->newFiles || $this->saveMediaFiles($model))) { $model->save(); $this->redirect(['update', 'id' => $id]); }
- 在您的表单视图中,显示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